IssuerNameRegistry Classe

Définition

Classe de base abstraite pour un registre des noms d'émetteurs. Registre de noms d'émetteurs utilisé pour associer un nom mnémonique avec le matériel de chiffrement qui est nécessaire pour vérifier les signatures des jetons produits par l'émetteur correspondant. Le Registre des noms d'émetteurs contient la liste des émetteurs qui sont approuvés par une application de partie de confiance (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
Héritage
IssuerNameRegistry
Dérivé
Implémente

Exemples

Le code suivant montre une implémentation de la IssuerNameRegistry classe qui accepte uniquement les émetteurs qui utilisent des certificats avec l’objet « CN=localhost ».

Avertissement

Le code suivant est à des fins d’illustration uniquement. La validation de certificats basés sur le nom du sujet n’est pas une bonne pratique. Ce code ne doit pas être utilisé tel qu’il est en production.

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

L’exemple suivant montre le code XML nécessaire à la configuration d’une application avec le registre de noms d’émetteurs approuvé.

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

Remarques

Le registre de noms de l’émetteur est utilisé pour associer un nom mnémonique au matériel de chiffrement nécessaire pour vérifier les signatures des jetons produits par l’émetteur correspondant. Ce nom est ensuite utilisé pour définir la IssuerOriginalIssuer propriété ou d’une revendication. Les méthodes exposées par la IssuerNameRegistry classe sont appelées à partir du pipeline par le gestionnaire de jeton de sécurité qui traite le jeton. Les jetons signés par un matériau qui n’est pas mappé par un registre de noms d’émetteurs sont ignorés comme non approuvés. Le nom retourné par le registre de noms de l’émetteur doit être unique dans le contexte d’une application rp.

Dans le code, vous pouvez spécifier le registre de noms d’émetteurs à utiliser en définissant la SecurityTokenHandlerConfiguration.IssuerNameRegistry propriété . Dans un fichier de configuration, le registre de noms de l’émetteur peut être spécifié en spécifiant l’élément <issuerNameRegistry> sous l’élément <securityTokenHandlerConfiguration> .

Windows Identity Foundation (WIF) fournit une implémentation de la IssuerNameRegistry classe prête à l’emploi : la ConfigurationBasedIssuerNameRegistry classe . Lorsque vous utilisez cette implémentation, vous pouvez spécifier la liste des émetteurs approuvés dans le fichier de configuration de l’application RP sous l’élément <trustedIssuers> , qui est un élément enfant de l’élément <issuerNameRegistry> lorsque la ConfigurationBasedIssuerNameRegistryclasse .class est référencée dans l’attribut de type cet élément. Sous l’élément <trustedIssuers> , chaque nom d’émetteur est mappé au certificat X.509 qui doit être utilisé pour vérifier sa signature.

Pour créer un registre de noms d’émetteurs personnalisé, vous devez remplacer la IssuerNameRegistry.GetIssuerName(SecurityToken) méthode . Cette méthode retourne le nom de l’émetteur pour le jeton de sécurité spécifié. Vous pouvez éventuellement remplacer la IssuerNameRegistry.GetIssuerName(SecurityToken, String) méthode pour fournir un mécanisme d’indication lors de la récupération des noms d’émetteurs et la GetWindowsIssuerName méthode si vous souhaitez fournir un nom d’émetteur pour les jetons Windows différent de DefaultIssuer. Remplacez la LoadCustomConfiguration méthode pour permettre à votre registre de noms d’émetteurs d’être initialisé à partir d’un fichier de configuration.

Constructeurs

IssuerNameRegistry()

Initialise une nouvelle instance de la classe IssuerNameRegistry.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetIssuerName(SecurityToken)

En cas de substitution dans une classe dérivée, retourne le nom de l'émetteur du jeton de sécurité spécifié.

GetIssuerName(SecurityToken, String)

En cas de substitution dans une classe dérivée, retourne le nom de l'émetteur du jeton de sécurité spécifié. Le nom d'émetteur spécifié peut être utilisé pour déterminer le nom d'émetteur à retourner.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetWindowsIssuerName()

Retourne le nom d'émetteur par défaut à utiliser pour les revendications Windows.

LoadCustomConfiguration(XmlNodeList)

Après substitution dans une classe dérivée, charge la configuration personnalisée à partir de XML.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi