次の方法で共有


Windows 認証プロバイダ

更新 : 2007 年 11 月

Windows 認証では、Microsoft Internet Information Services (IIS) によって提供されたユーザー ID を、ASP.NET アプリケーションで認証済みのユーザーとして扱います。IIS には、匿名認証、Windows 統合 (NTLM) 認証、Windows 統合 (Kerberos) 認証、基本 (base64 エンコードされた) 認証、ダイジェスト認証、クライアント証明書に基づく認証など、ユーザー ID を検査するための認証機構が数多く用意されています。

Windows 認証は、WindowsAuthenticationModule モジュールを使用して ASP.NET に実装されます。このモジュールは、IIS によって提供された資格情報に基づいて WindowsIdentity を構築し、その ID をアプリケーションの現在の User プロパティ値として設定します。

Windows 認証は ASP.NET アプリケーションの既定の認証機構であり、次のコード例に示すように、authentication 構成要素によってアプリケーションの認証モードとして識別されます。

<system.web>
  <authentication mode="Windows"/>
</system.web>

Windows ID の偽装

Windows 認証モードでは、IIS によって提供された資格情報に基づいて現在の User プロパティの値が WindowsIdentity に設定されますが、オペレーティング システムに提供される Windows ID は変更されません。オペレーティング システムに提供される Windows ID は、NTFS ファイル アクセス許可などのアクセス許可のチェックや、統合セキュリティを使用したデータベースへの接続に使用されます。既定では、この Windows ID は ASP.NET プロセスの ID です。Microsoft Windows 2000 および Windows XP Professional では、これは ASP.NET ワーカー プロセスの ID (ローカル ASPNET アカウント) です。Windows Server 2003 では、これは ASP.NET アプリケーションを含んでいる IIS アプリケーション プールの ID です。既定では、これは NETWORK SERVICE アカウントです。

偽装を有効にすることにより、ASP.NET アプリケーションの Windows ID を、IIS によって提供される Windows ID として設定できます。つまり、オペレーティング システムが認証するすべてのタスク (ファイル アクセスやネットワーク アクセスなど) について、IIS から提供される ID を偽装するように ASP.NET アプリケーションに指示します。

Web アプリケーションで偽装を有効にするには、次のコード例に示すように、アプリケーションの Web.config ファイルで identity 要素の impersonate 属性を true に設定します。

<system.web>
  <authentication mode="Windows"/>
  <identity impersonate="true"/>
</system.web>

ASP.NET プロセス ID の詳細については、「ASP.NET プロセス ID の構成」を参照してください。偽装の詳細については、Impersonate メソッドのトピックを参照してください。

NTFS ACL を使用した承認の有効化

NTFS ファイル システムとアクセス制御リスト (ACL) を使用してアプリケーションのファイルをセキュリティ保護することにより、ASP.NET アプリケーションのセキュリティを強化できます。ACL を使用すると、どのユーザーおよびユーザー グループにアプリケーションのファイルへのアクセスを許可するかを指定できます。ASP.NET ページの ID として Windows ID が実行する必要がある最低限必要な NTFS ファイル アクセス許可の一覧については、「ASP.NET の必須アクセス制御リスト (ACL)」を参照してください。

907hb5w9.alert_note(ja-jp,VS.90).gifメモ :

ASP.NET のロールを使用して、Web アプリケーションのページおよびセクションのユーザー承認を管理することもできます。詳細については、「ロールを使用した承認の管理」を参照してください。

参照

処理手順

方法 : WindowsPrincipal プロジェクトを作成する

方法 : GenericPrincipal オブジェクトと GenericIdentity オブジェクトを作成する

その他の技術情報

ASP.NET Web アプリケーションのセキュリティ

ASP.NET の認証