Compartilhar via


IssuerNameRegistry Classe

Definição

A classe base abstrata para um Registro do nome do emissor. Um Registro do nome do emissor é usado para associar um nome mnemônico ao material criptográfico que é necessário para verificar as assinaturas dos tokens produzidos pelo emissor correspondente. O Registro do nome do emissor mantém uma lista de emissores confiáveis para um aplicativo RP (de terceira parte confiável).

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
Herança
IssuerNameRegistry
Derivado
Implementações

Exemplos

O código a seguir mostra uma implementação da IssuerNameRegistry classe que aceita apenas emissores que usam certificados com a entidade "CN=localhost".

Aviso

O código a seguir é somente para fins ilustrativos. Validar certificados com base no nome da entidade não é uma boa prática. Esse código não deve ser usado como está em produção.

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.");
        }
    }
}

A seguir, mostra o XML necessário para configurar um aplicativo com o registro de nome do emissor confiável.

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

Comentários

O registro de nome do emissor é usado para associar um nome mnemônico ao material criptográfico necessário para verificar assinaturas de tokens produzidos pelo emissor correspondente. Esse nome é então usado para definir a Issuer propriedade ou OriginalIssuer de uma declaração. Os métodos expostos pela IssuerNameRegistry classe são chamados do pipeline pelo manipulador de token de segurança que está processando o token. Tokens assinados por material que não é mapeado por um registro de nome do emissor são descartados como não confiáveis. O nome retornado pelo registro de nome do emissor deve ser exclusivo dentro do contexto de um aplicativo RP.

No código, você pode especificar o registro de nome do emissor a ser usado definindo a SecurityTokenHandlerConfiguration.IssuerNameRegistry propriedade . Em um arquivo de configuração, o registro de nome do emissor pode ser especificado especificando o <elemento issuerNameRegistry> no <elemento securityTokenHandlerConfiguration> .

O WIF (Windows Identity Foundation) fornece uma implementação da IssuerNameRegistry classe pronta para uso: a ConfigurationBasedIssuerNameRegistry classe . Ao usar essa implementação, você pode especificar a lista de emissores confiáveis no arquivo de configuração do aplicativo RP no <elemento trustedIssuers> , que é um elemento filho do <issuerNameRegistry> elemento quando a ConfigurationBasedIssuerNameRegistryclasse .é referenciada no atributo desse type elemento. No elemento , cada nome do <trustedIssuers> emissor é mapeado para o certificado X.509 que deve ser usado para verificar sua assinatura.

Para criar um registro de nome de emissor personalizado, você deve substituir o IssuerNameRegistry.GetIssuerName(SecurityToken) método . Esse método retorna o nome do emissor para o token de segurança especificado. Opcionalmente, você pode substituir o IssuerNameRegistry.GetIssuerName(SecurityToken, String) método para fornecer um mecanismo de dica ao recuperar nomes de emissor e o GetWindowsIssuerName método se quiser fornecer um nome de emissor para tokens do Windows diferentes de DefaultIssuer. Substitua o método para permitir que o LoadCustomConfiguration registro de nome do emissor seja inicializado de um arquivo de configuração.

Construtores

IssuerNameRegistry()

Inicializa uma nova instância da classe IssuerNameRegistry.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetIssuerName(SecurityToken)

Quando substituído em uma classe derivada, retorna o nome do emissor do token de segurança especificado.

GetIssuerName(SecurityToken, String)

Quando substituído em uma classe derivada, retorna o nome do emissor do token de segurança especificado. O nome de emissor especificado pode ser considerado para determinar o nome do emissor a ser retornado.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetWindowsIssuerName()

Retorna o nome de emissor padrão a ser usado em declarações do Windows.

LoadCustomConfiguration(XmlNodeList)

Quando substituído em uma classe derivada, carrega a configuração personalizada do XML.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também