Passport 認証プロバイダ
パスポート認証は Microsoft が提供する集中化された認証サービスで、メンバのサイトに対して単一のログオン サービスおよび主要なプロファイル サービスを提供します。この認証方法では、ユーザーは、保護されている新しいリソースやサイトにアクセスするためにログオンする必要がなくなります。サイトに Passport 認証および認定との互換性を持たせるには、このプロバイダを使用します。このトピックでは、Microsoft .NET Passport と ASP.NET でのそのサポートについて、基本的な内容を説明します。詳細については、http://www.passport.com/business で Passport についてのドキュメントを参照してください。このドキュメントにアクセスするには、Passport を取得して登録する必要があります。
Passport とは、Cookie ベースの認証サービスです。Passport 認証を使用したトランザクションの対話は、次のような流れで進行します。
- クライアントが、https://www.contoso.com/default.aspx などの保護されているリソースに対する HTTP GET 要求を発信します。
- クライアントの Cookie で既存の Passport 認証チケットが調べられます。サイトが有効な資格情報を見つけると、サイトはクライアントを認証します。要求に有効な認証チケットが含まれていない場合は、サーバーはステータス コード 302 を返し、クライアントを Passport ログオン サービスへリダイレクトします。応答には、URL がクエリ文字列に含まれています。この URL は、クライアントを元のサイトに戻すために Passport ログオン サービスに送られます。
- クライアントはリダイレクトされ、Passport ログオン サーバーに HTTP GET 要求を発信し、元のサイトからのクエリ文字列情報を転送します。
- Passport ログオン サーバーがクライアントに対してログオン フォームを表示します。
- クライアントではフォームに必要事項を入力し、SSL (Secure Sockets Layer) を使用して、ログオン サーバーにポスト バックします。
- ログオン サーバーはユーザーを認証し、クライアントを元の URL (https://www.contoso.com/default.aspx) にリダイレクトします。応答には、暗号化された Passport Cookie を持つクエリ文字列が含まれています。
- クライアントはリダイレクトされ、今回は Passport Cookie を使用して、最初に要求した保護されているリソースを再び要求します。
- 要求元のサーバーで、PassportAuthenticationModule は Passport Cookie を検出し、認証をテストします。成功した場合は、要求が認証されます。
以降、このサイト上の保護されているリソースを要求すると、その要求は提供されたチケットを使用することにより、最初に要求したサーバーで認証されるようになります。Passport は、チケットの有効期限切れや、他のメンバ サイトでのチケットの再利用についても対応します。
Passport は、Triple DES 暗号化スキームを使用しています。メンバ サイトが Passport に登録すると、そのサイトには固有のキーが与えられます。Passport ログオン サーバーは、このキーを使用して、サイト間で受け渡しされるクエリ文字列を暗号化および復号化します。
メモ Passport 認証を使用するには、その前にサイトを Passport サービスに登録し、使用許諾契約に同意し、.NET Passport SDK をインストールしておく必要があります。
ASP.NET PassportAuthenticationModule は、ASP.NET アプリケーション用の .NET Passport SDK のラッパーを提供し、Passport 認証サービスと、IIdentity の派生クラスである PassportIdentity からのプロファイル情報を提供します。
WindowsIdentity クラスを使用する場合と同様に、PassportAuthentication_OnAuthenticate イベントを処理する主な目的は、カスタム IPrincipal インターフェイス オブジェクトをコンテキストに関連付けることにあります。PassportIdentity という IIdentity の特別な派生クラスは、Passport プロファイル情報に対するインターフェイスと、Passport 認証チケットを暗号化および復号化するためのメソッドを提供します。
ASP.NET アプリケーションに Passport 認証を実装するには
.NET Passport SDK を http://www.passport.com/business からダウンロードし、インストールして構成します。SDK を入手するには、登録フォームに入力する必要があります。Windows Server 2003 には .NET Passport SDK が含まれているため、この手順は不要です。
アプリケーション構成ファイルで、次のように、認証モードを Passport に設定します。
<authentication mode= "Passport"/>
Passport のドキュメントを参照し、.NET Passport SDK の機能を使用して、Passport の認証および認定を実装します。
Passport 認証を使用する ASP.NET ページのコード例については、https://msdn.microsoft.com/library で「Creating a Microsoft .NET Passport-Authenticated Web Site with ASP.NET」を参照してください。
参照
ASP.NET Web アプリケーションのセキュリティ | ASP.NET の認証 | IIdentity インターフェイス | PassportAuthenticationModule クラス | PassportIdentity クラス