セキュリティ保護された ASP.NET アプリケーションの構築 : 認証、認定、および通信のセキュリティ保護 Windows 2000 での Kerberos 委任の構成方法
J.D. Meier, Alex Mackman, Michael Dunner, and Srinath Vasireddy
Microsoft Corporation
November 2002
日本語版最終更新日 2003 年 3 月 17 日
適用対象:
Microsoft® ASP.NET
Microsoft Windows® 2000
全体の概要については、「セキュリティ保護された ASP.NET アプリケーションの構築」の開始ページを参照してください。
要約 : Kerberos 委任を使用すると、認証された ID を、複数の物理的なアプリケーションの層にわたって伝達することができるため、下位方向の認証と認定をサポートできます。ここでは、Kerberos 委任の構成に必要な手順について説明します。
目次
Microsoft® Windows® 2000 オペレーティング システムは、既定で Kerberos プロトコルを認証に使用します。ここでは、Keberos 委任の構成方法について説明します。Kerberos 委任とは、サーバーがクライアントを偽装し、サーバーがクライアントの代理となってリモート リソースにアクセスできるようにする強力な機能です。
重要 委任は非常に強力な機能で、Windows 2000 では制約がありません。慎重に使用してください。委任をサポートするよう構成されているコンピュータでは、アクセス権を厳格に管理し、この機能が誤用されないようにしてください。
Windows Server 2003 の委任機能では制約設定がサポートされています。
サーバーがクライアントを偽装するとき、次の条件が満たされると、Kerberos 認証によって委任レベルのトークンが生成されます。委任レベルのトークンは、ネットワーク認証要求に対するリモート コンピュータからの応答に使用できます。
- 偽装されるクライアント アカウントが、Microsoft Active Directory? ディレクトリ サービスで、"アカウントは重要なので委任できない" として設定されていない。
- サーバー プロセス アカウント (サーバー プロセスの実行に使用するユーザー アカウント、またはローカル システム アカウントでプロセスを実行する場合はコンピュータ アカウント) が、Active Directory で、"委任に対して信頼されている" として設定されている。
メモ
Kerberos 委任が正常に機能するためには、すべてのコンピュータ (クライアントおよびサーバー) が同一の Active Directory フォレストに所属している必要があります。
サービス コンポーネント内で偽装し、呼び出し側のコンテキストを Enterprise Services アプリケーションを通じて渡す場合は、Enterprise Services をホストするアプリケーション サーバーに、修正ロールアップパッケージ 18.1 以上がインストールされている必要があります。
詳細については、「Windows 2000 SP2 以降の COM+ 修正 ロールアップ パッケージ 18.1」を参照してください。
必要条件
ハードウェア、ソフトウェア、ネットワーク インフラストラクチャ、スキル、知識、サービス パックの要件としては、Active Directory が構成された Windows 2000 Server が必要です。
要約
ここでは、次の手順について説明します。
- クライアント アカウントで委任が許可されていることを確認する。
- サーバー プロセス アカウントが委任に対して信頼されていることを確認する。
1. クライアント アカウントで委任が許可されていることを確認する
ここでは、クライアント アカウントで委任が許可されていることを確認します。
■ クライアント アカウントで委任が許可されていることを確認するには
- 管理者アカウントを使用してドメイン コントローラにログオンします。
- タスク バーの [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーとコンピュータ] をクリックします。
- 使用するドメインの Users フォルダをクリックします。
- 委任対象のユーザー アカウントを右クリックして [プロパティ] をクリックします。
- [アカウント] タブをクリックします。
- [アカウント オプション] の [アカウントは重要なので委任できない] チェック ボックスがオフになっていることを確認します。
- [OK] をクリックして、[プロパティ] ダイアログ ボックスを閉じます。
2. サーバー プロセス アカウントが委任に対して信頼されていることを確認する
ここでは、サーバー プロセス (偽装を行うプロセス) の実行に使用するアカウントが、クライアント アカウントの委任を許可されているかどうかを確認します。サーバー プロセスの実行に使用するユーザー アカウントを構成する必要があります。ローカル システム アカウントでサーバー プロセスを実行する場合は、コンピュータ アカウントを構成する必要があります。サーバー プロセスの実行に Windows アカウントを使用するか、ローカル システム アカウントを使用するかに応じて、該当する方の手順に従ってください。
■ サーバー プロセスの実行に Windows ユーザー アカウントを使用している場合、サーバー プロセス アカウントが委任に対して信頼されていることを確認するには
- [Active Directory ユーザーとコンピュータ] の Users フォルダで、サーバー プロセス (クライアントを偽装するプロセス) の実行に使用するユーザー アカウントを右クリックし、[プロパティ] をクリックします。
- [アカウント] タブをクリックします。
- [アカウント オプション] の [アカウントは委任に対して信頼されている] チェック ボックスをオンにします。
■ サーバー プロセスの実行にローカル システム アカウントを使用している場合、サーバー プロセス アカウントが委任に対して信頼されていることを確認するには
- [Active Directory ユーザーとコンピュータ] の Computers フォルダを右クリックし、[プロパティ] をクリックします。
- サーバーのコンピュータ (クライアントを偽装するプロセスを実行するコンピュータ) を右クリックし、[プロパティ] をクリックします。
- [全般] タブの [コンピュータを委任に対して信頼する] をクリックします。
参考資料
- Windows 2000 (SP2) 以降の COM+ 修正ロールアップ パッケージ 18.1 によって影響を受けるファイルの一覧については、Microsoft サポート技術情報の Knowledge Base の文書313582「Windows 2000 SP2 以降の COM+ 修正 ロールアップ パッケージ 18.1」を参照してください。
- ASP.NET、Enterprise Services、および SQL Server を含む委任プロセス全体の構成方法については、「第 5 章 イントラネット セキュリティ」の「最初の呼び出し元をデータベースにフローする」を参照してください。