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