2009-05-21 5 views
1

私たちは私たちのアーキテクチャでケルベロスを利用することを計画しています。私はこの技術が持っている知覚された、または実際の利点が何か、そして何か他の選択肢があるかどうかを知りたいと思います。Kerberosの認識/実際の利点は何ですか?技術に対する実行可能な代替手段はありますか?

私たちには、.netクライアント側とJavaサーバー側があります。コミュニケーションはメッセージングバスとSOAを経由します

+1

あなたの要件を知らなくても、私は誰にも意味のある代替案を提案することができるとは思いません。 – lothar

答えて

4

特にWindows環境(Windows Server 2k3、ドメインコントローラ、Active Directoryなど)で作業している場合は、特に.NETを使用してimpersonationを使用することができます。分割されたWebサーバーとデータベースサーバー。古いNTLMメソッドを使用すると、 "ダブルホップ"を行うことはできません。


例を見てみましょう:

  • 、あなたがユーザのアクセスを持っている別のマシン(DB1)
  • 上のデータベース・サーバを持つWebサーバ(WEB1)
  • を持っていますあなたのウェブサイト(USER1)

USER1は注文のリストを表示するページをヒットします。 WEB1サーバーは、この情報がページに表示されるようにDB1に照会する必要があります。ユーザーの資格情報とアクセス権に基づいて表示される注文を制限する必要があります。したがって、アクティブなディレクトリグループを設定し、それに従ってユーザを割り当てます。データベース上では、異なるグループに異なるセキュリティを与えます(GROUP1は選択のみ可能で、GROUP2は選択、挿入、更新などが可能です)。

NTLMはこれを行うのに必要なダブルホップをサポートしていません。 WEB1はUSER1の資格情報をDB1に送信する必要があります(そうでないと、WEB1は、通常、すべての可能なユーザー役割をサポートするためにフルアクセス権が必要なweb.configにハードコードされている既知の専用ユーザーIDとパスワードでDB1にログインする必要があります)。あなたはWEB1が侵害された場合、セキュリティ上の危険があると想像することができます。そうしないと、WEB1の制御権(おそらくSQLインジェクションを介して)を得た人は誰でも、専用のユーザーアカウントができるか、 Kerberosは、Windows Server上の委任を通じ、ドメインサーバーの暗号化された資格情報キーをそのまま維持して渡すことをサポートするとともに、これが許可されていることを確認します(両端でサーバー上で設定しますそれは明示的に許可されなければならないからです)。

それは(右?、時間の99%の場合である)データベースのバックエンドを持っていて、Windows統合セキュリティによる認可および認証を制御したいイントラネットのWebアプリケーションを開発する際に、これを行うことは非常に便利です。 Webサーバーとデータベースサーバーが同じマシンにない限り、Kerberosは本当に唯一の選択です。つまり、資格情報の転送や偽装の必要はありません。

も参照してください:

+1

これは、ケルベロスの利点に関するOPの質問にどのように答えますか? Active DirectoryがKerberosの実装であるという事実を考えると、Kerberosの代替手段でもありません。 – lothar

関連する問題