認証を委任する場合の ASP.NET アプリケーションの構成方法

文書翻訳 文書翻訳
文書番号: 810572 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

この資料では、ASP.NET アプリケーションの委任に必要な、インターネット インフォメーション サービス (IIS) および Active Directory の構成方法について手順を追って説明します。委任は偽装の次のステップです。委任により、ローカル リソースに限定されずに、クライアントに代わってリモート リソースにアクセスできます。この資料では、ASP.NET と連携するアプリケーションを委任するために必要な手順について説明します。


委任に関する要件

委任では、統合 Windows 認証に基づいてリソースにアクセスします。アカウントを委任できるコンピュータの数に制限はありません。各コンピュータを正しく構成する必要があります。統合 Windows 認証は、次の 2 つの条件を満たしている場合にのみ正常に機能します。
  • Active Directory を必要とする Kerberos 認証プロトコルを使用するように、ネットワークを設定しています。
  • ネットワーク上のコンピュータとアカウントを、委任に対して信頼されるように設定しています。
これらの条件に該当しない場合、統合 Windows 認証を使用してリモート リソースのデータにアクセスすることはできません。これは、統合 Windows 認証では IIS サーバーへのアクセスのみがユーザーに許可され、Windows 認証用に構成された、IIS サーバーがリモートからアクセスする追加リソースへのアクセスは許可されないためです。

Kerberos 認証ではサーバーとクライアントが認証されますが、Windows NT チャレンジ/レスポンス (NTLM) 認証ではクライアントのみが認証されます。Windows 2000 より前のオペレーティング システムでは Kerberos 認証はサポートされていません。Kerberos では、IIS 5.0 以降のバージョンを使用する必要があります。したがって、Kerberos 委任を使用する場合、すべてのコンピュータで Windows 2000 またはそれより新しいオペレーティング システムが実行されている必要があります。また、すべてのコンピュータを同じ Active Directory フォレスト内に配置する必要があります。Kerberos は Microsoft Internet Explorer 5.0 およびそれ以降のバージョンでのみサポートされています。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
217098 [NT]Windows 2000 での Kerberos 認証の概要


委任するための Internet Explorer の構成方法

Internet Explorer 5.0 以降のバージョンを使用している場合、ASP.NET と IIS の間の委任が行えるように Internet Explorer を構成できます。これを行うには、以下の手順を実行します。
  1. Internet Explorer を起動します。[ツール] メニューをクリックし、[インターネット オプション] をクリックします。
  2. [詳細設定] タブをクリックし、[統合 Windows 認証を使用する (再起動が必要)] チェック ボックスをオンにします。

    この設定により、Internet Explorer は Negotiate チャレンジに応答して、Kerberos 認証を実行します。この機能では Windows 2000 以降のバージョンが必要であるため、Internet Explorer が実行されているのが Windows 2000 以降のバージョンのオペレーティング システムでない場合、Internet Explorer は Negotiate チャレンジに応答しません。[統合 Windows 認証を使用する (再起動が必要)] チェック ボックスをオンにしても、Internet Explorer ではデフォルトで NTLM 認証が使用されます。

    警告 : レジストリ エディタまたは別の方法を使用してレジストリを誤って変更すると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリの変更により発生した問題に関しては、一切責任を負わないものとします。レジストリの変更は、自己の責任において行ってください。

  3. : Microsoft Windows 2000 以降のバージョンを実行しているコンピュータの管理者は、以下のレジストリ キーの EnableNegotiate の値 (REG_DWORD エントリ) を 1 に設定することで、統合 Windows 認証を有効にすることができます。
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    .
  4. Internet Explorer クライアントで Kerberos が失敗するケースがあります。 Kerberos 認証に関連する問題を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    321728 Internet Explorer でプロキシ サーバーを使用した Kerberos 認証がサポートされない
    325608 負荷分散アーキテクチャで Kerberos を使用した認証の委任が機能しない
    248350 [IIS] IIS 4.0 から IIS 5.0 にアップグレードした後、Kerberos 認証が失敗する
    264921 [INFO] IIS におけるブラウザ クライアントの認証方法

委任するための IIS の構成方法

ASP.NET アプリケーション用に統合 Windows 認証および偽装を有効にするには、インターネット インフォメーション サービス (IIS) を構成する必要があります。IIS で Windows 認証を構成するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、inetmgr と入力し、[OK] をクリックします。
  2. [ローカル コンピュータ] を展開し、[Web サイト] を展開します。
  3. [既定の Web サイト] を右クリックして [プロパティ] をクリックします。
  4. [ディレクトリ セキュリティ] タブをクリックし、[匿名アクセスおよび認証コントロール] または [認証とアクセス制御] の [編集] をクリックします。
  5. [統合 Windows 認証] チェック ボックスをオンにし、[匿名アクセス] (または [匿名アクセスを有効にする])、[Windows ドメイン サーバーでダイジェスト認証を使用する]、[基本認証] の各チェック ボックスをオフにします。

    : 匿名認証が有効になっていると、他の方法が有効な場合でも、IIS では常に匿名認証を使用した認証の試行が行われます。

    匿名認証、統合 Windows 認証、基本認証がすべて選択されている場合、優先順位は、匿名認証、統合 Windows 認証、基本認証の順になります。

委任するための ASP.NET の構成方法

  1. メモ帳などのテキスト エディタで Web.config ファイルを開きます。Web.config ファイルは Web アプリケーションのフォルダにあります。
  2. Web.config ファイルで、<configuration> セクションの次の情報を見つけます。
    <allow users="*" />
    			<deny users="?" />
  3. <System.web> セクションで、次のように認証要素に Windows が設定されていることを確認します。
    <authentication mode="Windows" />
  4. <System.web> セクションで、偽装用に次の要素を追加します。
    <identity impersonate="true" />
  5. 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    306158 ASP.NET アプリケーションに偽装を実装する方法
    317012 ASP.NET のプロセス ID と要求 ID
    315736 Windows セキュリティを使用して ASP.NET アプリケーションをセキュリティで保護する方法

委任するための Active Directory の構成方法

委任の資格情報を持つすべてのコンピュータで委任を有効にする必要があります。委任は Active Directory ツールで構成できます。

詳細については、次のマイクロソフト Web サイトを参照してください。
Allow a computer to be trusted for delegation
http://technet2.microsoft.com/windowsserver/en/library/b207ee9c-a055-43f7-b9be-20599b694a311033.mspx
User and computer accounts
http://technet2.microsoft.com/windowsserver/en/library/91a98c38-38c5-49dc-83bf-e69d8e1dbbfa1033.mspx
IIS のコア プロセスである InetInfo.exe は LocalSystem アカウントで実行されるサービスで、以下の処理を行うプロセスです。
  • クライアント要求を取得する。
  • ユーザーを偽装する。
  • 適切なタスクを実行する。
  • プロセス ID を元に戻す。これは LocalSystem です。
LocalSystem 以外のアカウントで InetInfo.exe を実行している場合、そのアカウントにタスクを委任実行する許可があるかどうかを確認する必要があります。この場合、コンピュータを委任用に構成しないでください。

トラブルシューティング

  1. ASP.NET ページを呼び出すために URL で使用する Web サーバー名が IIS コンピュータの NetBIOS 名と異なる場合、統合認証はエラー 401.3 で失敗することがあります。この問題を解決するには、コンピュータの新しいサービス プリンシパル名を SetSPN.exe ユーティリティで登録します。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    294382 Web サイトのホスト ヘッダーがサーバーの NetBIOS 名と異なると、"401.3" エラーが発生して認証に失敗することがある
  2. Kerberos は負荷分散アーキテクチャでは機能せず、IIS で使用される認証方法は NTLM 認証に戻ります。NTLM は委任では使用できないため、委任を必要とするアプリケーションまたはサービスは正常に動作しません。 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    325608 負荷分散アーキテクチャで Kerberos を使用した認証の委任が機能しない
  3. Kerberos が正常に機能するためには、すべての通信で完全修飾ドメイン名 (FQDN) を使用する必要があります。
  4. Internet Explorer を Windows 2000 クライアント上で使用しているとき、ホスト ヘッダー名がコンピュータの NetBIOS 名と異なる Web サイトにアクセスすると、統合認証はエラー 401.3 で失敗することがあります。Windows NT 4、Windows 98、または Windows 95 上の Internet Explorer クライアントは失敗しません。また、他の認証方法では正常に機能します。
  5. Web サーバーで完全修飾ドメイン名が使用されている場合、Internet Explorer でイントラネット サイトの一覧にサイトを追加する必要があります。サイトを追加するには、以下の手順を実行します。
    1. Internet Explorer を起動します。
    2. [ツール] メニューの [インターネット オプション] をクリックし、[セキュリティ] タブをクリックします。
    3. [イントラネット] をクリックし、[サイト] をクリックします。
    4. [詳細設定] をクリックし、[次の Web サイトをゾーンに追加する] ダイアログ ボックスに Web アドレスを入力します。[追加] をクリックして [OK] をクリックします。
  6. Internet Explorer クライアントがプロキシ サーバーを使用するように設定されている場合、[ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスをオンにする必要があります。Internet Explorer クライアントがプロキシ サーバーを使用するように設定されているかどうかを確認するには、以下の手順を実行します。
    1. Internet Explorer を起動します。
    2. [ツール] メニューの [インターネット オプション] をクリックし、[接続] タブをクリックします。
    3. [LAN の設定] をクリックします。[プロキシ サーバー] で、[ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスをオンになっていることを確認します。
  7. ASP.NET アプリケーションから SQL Server にアクセスするには、TCP/IP を使用する必要があります。名前付きパイプは Kerberos 委任をサポートしていません。名前付きパイプでサポートされているのは、NTLM のみです。これを行うには、次の属性を接続文字列に追加します。
    "Network Library =dbmssocn"
    ネットワーク ライブラリを明示的に指定しないと、NTLM ではクライアント構成ユーティリティ (Cliconfg.exe) の最初のライブラリ セットアップが使用されます。このデフォルト値は Microsoft Data Access Components (MDAC) 2.6 で名前付きパイプから TCP/IP に変更されました。
    関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
    315159 [BUG] ワーカー プロセスが ASPNET アカウントで実行されていると名前付きパイプが機能しない
    176377 [INFO] 統合セキュリティを使用して ASP から SQL Server にアクセスする
    176379 [HOWTO] 信頼関係接続を使用して別々のコンピュータ上の IIS と SQL Server を接続する方法
    247931 [INF] Active Server Pages で SQL Server に接続するための認証方法

関連情報

より高度にセキュリティ保護された Web ベースのアプリケーションおよび委任シナリオを設計する方法については、以下の MSDN (Microsoft Developer Network) Web サイトを参照してください。
http://www.microsoft.com/japan/msdn/net/security/secnetlpMSDN.asp
セキュリティ保護された Web ベースのアプリケーションを設計する方法については、以下の資料を参照してください。
『Designing Secure Web-Based Applications』
Microsoft Press
Michael Howard, Marc Levy, and Richard Waymire
ISBN 0-7356-0995-0

プロパティ

文書番号: 810572 - 最終更新日: 2006年2月25日 - リビジョン: 8.2
この資料は以下の製品について記述したものです。
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft Internet Information Services 5.0
  • Microsoft Internet Information Services 6.0
キーワード:?
kbauthentication kbwebforms kbdomain kbclient kbconfig kbwebserver kbhowtomaster kbhowto KB810572
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com