web-dev-qa-db-ja.com

LDAPを介して認証と承認を行うことができるのに、なぜKerberosを使用するのですか?

私たちは、私たちが持っているビッグデータクラスターでのKerberosの使用について議論しています。管理者は、認証と承認にLDAPを使用したいと考えています。インターネットを調べて反応がまちまちでしたが、ケルベロスを使用する理由がはっきりとわかりませんでした。

LDAPと一緒にKerberosを使用できることは理解していますが、Kerberos + LDAPを使用する場合とLDAPのみを使用する場合の利点を明確に把握できませんでした。誰か説明してもらえますか?

5
tesnik03

Kerberosは、企業ネットワーク内の業界標準のシングルサインオンプロトコルです。 LDAPは、常にディレクトリ検索プロトコルに近いものでした。ただし、LDAPは、プロトコル自体が考案されてから数年後に認証の側面が強化されたため、認証も実行できます。 LDAP認証を使用すると、認証を試みるたびにDirectory認証サーバーに負荷がかかるため、その意味で、Directory認証サーバーに頻繁に負荷がかかる可能性があります。 Kerberosを使用すると、最初の認証後、クライアントはデフォルトの10時間有効なチケットを保持するため、追加の認証試行でディレクトリ認証サーバーが再度過負荷になることはありません。また、クライアントは、アプリケーションサーバーがクライアントに代わってこれを行うのではなく、ターゲットリソースへの認証「チケット」の取得を処理します。これは、LDAP認証メカニズムが機能している場合にアプリケーションサーバーが行う必要があることです。さらに、LDAPが正しく構成されていない場合、認証の試行はクリアテキストで送信されます。 LDAPSを介して暗号化された認証を行うように構成した場合でも、SSL証明書を取得する必要があります。ただし、ユーザー名/パスワードをプレーンテキストでアプリケーションサーバーに保存する問題を回避する必要があります。誰かがそれを暗号化するために追加の手順を実行します。要するに、認証プロトコルとしてKerberosは箱から出してはるかに安全であり、分散化されており、LDAPよりもディレクトリ認証サーバーにかかる負荷が少なくなります。純粋なMicrosoftActive Directory環境のKerberosは認証と承認の両方を行いますが、ディレクトリルックアップは常にLDAPです。また、LDAPはnotシングルサインオンです。ユーザーは常にユーザー名/パスワードを手動で入力する必要がありますが、Kerberosではこれを行う必要はありません。

LDAPは元々RFCに従ってディレクトリルックアッププロトコルとしてのみ設計されていたため、認証にKerberosを使用し、ディレクトリルックアップやグループベースの承認にLDAPを使用する場合は、それがベストプラクティスです。実際、「Active Directoryユーザーとコンピューター」ユーティリティなどのツールを使用すると、次のようになります。Kerberos認証を渡して、AD LDAPサービスにクエリを実行できるようにしてから、それ以降のLDAPクエリは、純粋なLDAPです。 WindowsとLinuxなどの両方で構成される混合環境では、認証にいつでもKerberosを使用できますが、アプリケーション側でさらに作業が必要になります。たとえば、AD管理者が生成したキータブが必要になりますが、グループ化する必要があります。ベースの認証はLDAPである必要があり、もちろんディレクトリ検索は常にLDAPです。

管理者はおそらく、ストレートLDAPをずっと使用することを望んでいます。これは、立ち上がるのが簡単なルートだからです。ADユーザーアカウントの資格情報を提供するだけで、ユーザーができるようにアプリケーション側で取得して構成する必要があります。ログインしてグループベースの認証を許可し、LDAPを介してディレクトリを照会します。

この質問には、KerberosとLDAPの深い理解が含まれます。言いたいことや読むことはまだまだたくさんありますが、今はそのままにして、リンクを提供する必要があります。 KerberosとLDAPの比較認証

13
John R Smith