方法 : カスタム セキュリティ トークン プロバイダを作成する
ここでは、カスタム セキュリティ トークン プロバイダを持つ新しいトークンの種類を作成する方法と、そのプロバイダをカスタム セキュリティ トークン マネージャと統合する方法について説明します。
![]() |
---|
System.IdentityModel.Tokens 名前空間にあるシステム指定のトークンがユーザーの要件に一致しない場合、カスタム トークン プロバイダを作成します。 |
セキュリティ トークン プロバイダは、クライアントまたはサービスの資格情報に基づいてセキュリティ トークンの表現を作成します。Windows Communication Foundation (WCF) セキュリティでカスタム セキュリティ トークン プロバイダを使用するには、カスタム資格情報とセキュリティ トークン マネージャの実装を作成する必要があります。
カスタム資格情報とセキュリティ トークン マネージャの詳細については、「方法 : カスタム クライアントおよびサービスの資格情報を作成する」を参照してください。
資格情報、セキュリティ トークン マネージャ、およびプロバイダ クラスと認証システム クラスの詳細については、「セキュリティ アーキテクチャ」を参照してください。
カスタム セキュリティ トークン プロバイダを作成するには
SecurityTokenProvider クラスから派生する新しいクラスを定義します。
GetTokenCore メソッドを実装します。このメソッドは、セキュリティ トークンのインスタンスを作成して返す役割を担います。
MySecurityTokenProvider
という名前のクラスを作成し、GetTokenCore メソッドをオーバーライドして X509SecurityToken クラスのインスタンスを返す例を次に示します。クラス コンストラクタには X509Certificate2 クラスのインスタンスが必要です。
カスタム セキュリティ トークン マネージャにカスタム セキュリティ トークン プロバイダを統合するには
SecurityTokenManager クラスから派生する新しいクラスを定義します。以下の例は、SecurityTokenManager クラスから派生した ClientCredentialsSecurityTokenManager クラスから派生したクラスです。
まだオーバーライドされていない場合は、CreateSecurityTokenProvider メソッドをオーバーライドします。
CreateSecurityTokenProvider メソッドは、WCF セキュリティ フレームワークによりメソッドに渡される SecurityTokenRequirement パラメータに適した SecurityTokenProvider クラスのインスタンスを返す役割を担います。メソッドが適切なセキュリティ トークン パラメータで呼び出された場合に、カスタム セキュリティ トークン プロバイダの実装 (以前の手順で作成済み) を返すようにメソッドを変更します。セキュリティ トークン マネージャの詳細については、「方法 : カスタム クライアントおよびサービスの資格情報を作成する」を参照してください。
SecurityTokenRequirement パラメータに基づいてカスタム セキュリティ トークン プロバイダを返すカスタム ロジックをメソッドに追加します。トークンの要件が満たされた場合に、カスタム セキュリティ トークン プロバイダを返す例を次に示します。要件には、X.509 セキュリティ トークンとメッセージの方向 (メッセージ出力にトークンが使用される) が含まれます。他のすべての場合で、コードは基本クラスを呼び出し、他のセキュリティ トークンの要件に合わせてシステム指定の動作を維持します。
例
完全な SecurityTokenProvider 実装と対応する SecurityTokenManager 実装を次に示します。
関連項目
リファレンス
SecurityTokenProvider
SecurityTokenRequirement
SecurityTokenManager
X509SecurityToken
概念
方法 : カスタム クライアントおよびサービスの資格情報を作成する
方法 : カスタム セキュリティ トークン認証システムを作成する
セキュリティ アーキテクチャ