IssuerNameRegistry クラス

定義

発行者名レジストリの抽象基本クラス。 発行者名レジストリは、該当する発行者によって生成されたトークンの署名を検証するために必要な暗号化マテリアルにニーモニック名を関連付けるために使用されます。 発行者名レジストリは、証明書利用者 (RP) アプリケーションによって信頼されている発行者のリストを管理します。

public ref class IssuerNameRegistry abstract : System::IdentityModel::Configuration::ICustomIdentityConfiguration
public abstract class IssuerNameRegistry : System.IdentityModel.Configuration.ICustomIdentityConfiguration
type IssuerNameRegistry = class
    interface ICustomIdentityConfiguration
Public MustInherit Class IssuerNameRegistry
Implements ICustomIdentityConfiguration
継承
IssuerNameRegistry
派生
実装

次の IssuerNameRegistry コードは、サブジェクト "CN=localhost" で証明書を使用する発行者のみを受け入れる クラスの実装を示しています。

警告

次のコードは、例示のみを目的としています。 サブジェクト名に基づいて証明書を検証することは、適切な方法ではありません。 このコードは運用環境ではそのまま使用しないでください。

using System.IdentityModel.Tokens;

namespace System.IdentityModel.Samples
{
    /// <summary>
    /// This class verifies that the issuer is trusted, and provides the issuer name.
    /// </summary>
    public class TrustedIssuerNameRegistry : IssuerNameRegistry
    {
        /// <summary>
        /// Gets the issuer name of the given security token,
        /// if it is the X509SecurityToken of 'localhost'.
        /// </summary>
        /// <param name="securityToken">The issuer's security token</param>
        /// <returns>A string that represents the issuer name</returns>
        /// <exception cref="SecurityTokenException">If the issuer is not trusted.</exception>
        public override string GetIssuerName(SecurityToken securityToken)
        {
            X509SecurityToken x509Token = securityToken as X509SecurityToken;
            if (x509Token != null)
            {
                if (String.Equals(x509Token.Certificate.SubjectName.Name, "CN=localhost"))
                {
                    return x509Token.Certificate.SubjectName.Name;
                }
            }

            throw new SecurityTokenException("Untrusted issuer.");
        }
    }
}

次に、信頼された発行者名レジストリを使用してアプリケーションを構成するために必要な XML を示します。

<system.identityModel>  
  <identityConfiguration>  
    <issuerNameRegistry type="System.IdentityModel.Samples.TrustedIssuerNameRegistry, MyApp" />  
  </identityConfiguration>  
</system.identityModel>  

注釈

発行者名レジストリは、対応する発行者によって生成されたトークンの署名を検証するために必要な暗号化資料にニーモニック名を関連付けるために使用されます。 この名前は、要求の Issuer または プロパティを OriginalIssuer 設定するために使用されます。 クラスによって公開されるメソッドは、トークンを IssuerNameRegistry 処理しているセキュリティ トークン ハンドラーによってパイプラインから呼び出されます。 発行者名レジストリによってマップされていないマテリアルによって署名されたトークンは、信頼されていないものとして破棄されます。 発行者名レジストリによって返される名前は、RP アプリケーションのコンテキスト内で一意である必要があります。

コードでは、 プロパティを設定することで、使用する発行者名レジストリを SecurityTokenHandlerConfiguration.IssuerNameRegistry 指定できます。 構成ファイルでは、発行者名レジストリを指定するには、securityTokenHandlerConfiguration> 要素の下に issuerNameRegistry 要素を<指定<します。>

Windows Identity Foundation (WIF) では、 クラスの実装がIssuerNameRegistryすぐに使用できます。ConfigurationBasedIssuerNameRegistry この実装を使用すると、RP アプリケーションの構成ファイルで trustedIssuers> 要素の下<に信頼できる発行者の一覧を指定できます。これは、その要素の属性で .class が参照されている場合ConfigurationBasedIssuerNameRegistry<issuerNameRegistry>要素のtype子要素です。 要素の <trustedIssuers> 下で、各発行者名は、署名の検証に使用する必要がある X.509 証明書にマップされます。

カスタム発行者名レジストリを作成するには、 メソッドをオーバーライドする IssuerNameRegistry.GetIssuerName(SecurityToken) 必要があります。 このメソッドは、指定されたセキュリティ トークンの発行者名を返します。 必要に応じて、 メソッドを IssuerNameRegistry.GetIssuerName(SecurityToken, String) オーバーライドして、発行者名を取得するときにヒントメカニズムを提供できます GetWindowsIssuerName 。また、 とは異なる DefaultIssuerWindows トークンの発行者名を指定する場合は、 メソッドを使用します。 メソッドを LoadCustomConfiguration オーバーライドして、発行者名レジストリを構成ファイルから初期化できるようにします。

コンストラクター

IssuerNameRegistry()

IssuerNameRegistry クラスの新しいインスタンスを初期化します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetIssuerName(SecurityToken)

派生クラスでオーバーライドされると、指定されたセキュリティ トークンの発行者名を返します。

GetIssuerName(SecurityToken, String)

派生クラスでオーバーライドされると、指定されたセキュリティ トークンの発行者名を返します。 指定した発行者名は、返す発行者名を判断するときに検討される場合があります。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetWindowsIssuerName()

Windows クレームで使用する既定の発行者名を返します。

LoadCustomConfiguration(XmlNodeList)

派生クラスでオーバーライドされると、XML からカスタム構成を読み込みます。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください