Share via


セキュリティ保護された ASP.NET アプリケーションの構築 : 認証、認定、および通信のセキュリティ保護 ASP.NET の ID マトリックス

patterns and practices home

J.D. Meier, Alex Mackman, Michael Dunner, and Srinath Vasireddy
Microsoft Corporation

November 2002
日本語版最終更新日 2003 年 3 月 17 日

適用対象:
    Microsoft® ASP.NET

全体の概要については、「セキュリティ保護された ASP.NET アプリケーションの構築」の開始ページを参照してください。

要約 : ASP.NET 内でホストされている ASP.NET Webアプリケーション、Web サービス、およびリモート コンポーネントで使用できる変数について、具体的な例を挙げて説明しています。これらの変数により、呼び出し元、スレッド、およびプロセスのレベルでの ID 情報が提供されます。

ASP.NET には、以下のプリンシパル オブジェクトと ID オブジェクトの実装が用意されています。

  • WindowsPrincipal オブジェクトおよび WindowsIdentity オブジェクト : Windows 認証で認証されたユーザーを表します。これらのオブジェクトでは、Windows ユーザーが所属している Windows グループのセットからロール リストが自動的に取得されます。
  • GenericPrincipal オブジェクトおよび GenericIdentity オブジェクト : フォーム認証やその他のカスタム認証メカニズムで認証されたユーザーを表します。これらのオブジェクトでは、ロール リストが認証メカニズムに固有の方法で取得されます。多くの場合は、データベースから取得されます。
  • FormsIdentity オブジェクトおよび PassportIdentity オブジェクト : フォーム認証および Passport 認証で認証されたユーザーをそれぞれ表します。

この付録に収録されている表では、IIS 認証設定値の違いに応じて、IPrincipal オブジェクトまたは IIdentity オブジェクトを維持している各変数から取得される ID 情報を示しています。これらの表では、以下の略記表現を使用しています。

  • HttpContext = HttpContext.Current.User : 現在の Web 要求に対応するセキュリティ情報を格納した IPrincipal オブジェクトを返します。これは、認証された Web クライアントを表します。
  • WindowsIdentity = WindowsIdentity.GetCurrent() : 現在実行中の Win32 スレッドのセキュリティ コンテキストの ID 情報を返します。
  • Thread = Thread.CurrentPrincipal : Win32 スレッドの上位で、現在実行されている .NET スレッドのプリンシパルを返します。

表 1 IIS 匿名認証

Web.config の設定 変数の位置 取得される ID 情報

表 2 IIS 基本認証

Web.config の設定 変数の位置 取得される ID 情報

表 3 IIS ダイジェスト認証

Web.config の設定 変数の位置 取得される ID 情報

表 4 IIS 統合 Windows 認証

Web.config の設定 変数の位置 取得される ID 情報

patterns and practices home