1

アーキテクチャでケルベロスを利用することを計画しています。この技術が持つ認識されている、または実際の利点と、代替手段があるかどうかを知りたいです。

.net クライアント側と Java サーバー側があることに注意してください。通信はメッセージング バスと SOA を介して行われます

4

1 に答える 1

4

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


例を見てみましょう:

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

USER1 は、注文のリストを表示するページにアクセスします。WEB1 サーバーは、この情報をページに表示するために DB1 にクエリを実行する必要があります。ユーザーの資格情報とアクセス権に基づいて、表示される注文を制限したいと考えています。したがって、Active Directory グループを設定し、それに応じてユーザーを割り当てます。データベースでは、異なるグループに異なるセキュリティを与えます (たとえば、GROUP1 には選択のみがあり、GROUP2 には選択、挿入、および更新が含まれる場合があります)。

NTLM は、これを行うために必要なダブルホップをサポートしていません。WEB1 は USER1 の資格情報を DB1 に送信する必要があります (そうでない場合、WEB1 は既知の専用ユーザー ID と web.config にハードコーディングされたパスワードを使用して DB1 にログインする必要があります。たとえば、通常、可能なすべてのユーザー ロールをサポートするために完全なアクセス権が必要です)。これは、WEB1 が危険にさらされた場合にセキュリティ上の問題になる可能性があるため、それを行うことはできません。それ以外の場合、(SQL インジェクションを介して) WEB1 の制御を取得した人は、専用のユーザー アカウントが実行できることを実行したり、必要な人になりすますことができます。Kerberos は、Windows Server での委任を通じて、ドメイン サーバーからの暗号化された資格情報キーをそのまま保持して渡すことで、この 2 番目のホップの実行をサポートし、これが許可されていることを確認します (両端で、

これは、データベース バックエンドを備えたイントラネット Web アプリを開発し (99% の場合ですよね?)、Windows 統合セキュリティを介して承認と認証を制御する場合に非常に便利です。Web サーバーとデータベース サーバーが同じマシン上にない限り、Kerberos が唯一の選択肢です。つまり、資格情報の転送や偽装は必要ありません。

以下も参照してください。

于 2009-05-21T18:35:39.390 に答える