Share via


STS の構築

STS は発行機関のコンポーネントであり、入力方向の要求の受け付け、入力方向のセキュリティ トークンの検証と暗号化解除、入力方向のトークンからの要求の抽出、出力方向のセキュリティ トークンへの要求のパッケージ化、および出力方向のセキュリティ トークンの暗号化を行います。WIF は、これらの詳細処理に対処することで、開発者が独自の STS を容易に構築できるようにするほか、セキュリティ ポリシーを実装できるようにする拡張ポイントも提供します。 ポリシーは、次のような疑問の答えを出すためのものです。

  • セキュリティ トークンの提供先はどのような証明書利用者アプリケーションか。

  • これらのアプリケーションはどのような要求を処理するのか。

  • ユーザーをどのような方法で認証する必要があるのか。

  • 別のアプリケーションには異なるセキュリティ要件があるか。

  • フェデレーション先はどのようなパートナーか。

一般に最も効果的なのは、Active Directory® フェデレーション サービス (AD FS) 2.0 などの既存の STS を使用する方法です。 ただし、既存の STS がサポートしていないセキュリティ ポリシーを実装する必要がある場合は、WIF を使用してください。

STS の構築の詳細については、「ASP.NET STS を構築する方法」および「WCF STS を構築する方法」を参照してください。

STS アーキテクチャ

独自の STS を作成するには、WIF に用意されている SecurityTokenService から派生させます。 次の 2 つのメソッドをこのクラスで実装する必要があります。

  1. GetScope。このメソッドは、呼び出し元の IClaimsPrincipal と、入力される RST を受け取り、トークン発行要求のための構成を返します。トークン発行要求は、Scope クラスで表されます。 このメソッドで、証明書利用者のアドレスを正規化し、署名キーと暗号化キーを選択できます。 通常、セキュリティ トークンは証明書利用者だけが読み取れるように暗号化されます。

    EncryptingCredentials は、トークンを暗号化するかどうかを決定します。また、TokenEncryptionRequiredSymmetricKeyEncryptionRequired は、セキュリティで保護されていないトークンが STS から発行されないように、既定で true に設定されます。

  2. GetOutputClaimsIdentity。このメソッドは、呼び出し元の IClaimsPrincipal、入力される RST、および GetScope から返された Scope オブジェクトを受け取り、発行されるトークンに含まれる IClaimsIdentity を返します。 このメソッドを使用して、トークンに含まれる要求を判別できます。

これらのメソッドのサンプル実装については、サンプルを参照するか、「ASP.NET セキュリティ トークン サービス Web サイト」および「WCF セキュリティ トークン サービス」を参照してください。