Affectez la propriétéAllowUntrustedRsaIssuers à true si les jetons auto-émis, tels que les cartes CardSpace, doivent être authentifiés. Par défaut, il s’agit de false.
Remplissez la collection retournée par la propriété KnownCertificates avec les instances de la classe X509Certificate2. Chaque instance représente un émetteur à partir duquel le service authentifiera des jetons.
Notes
Contrairement à la collection côté client retournée par la propriété ScopedCertificates, la collection des certificats connus n'est pas une collection à clé. Le service accepte les jetons que les certificats spécifiés émettent indépendamment de l'adresse du client qui a envoyé le message contenant le jeton émis (sous réserve des contraintes supplémentaires décrites plus loin dans cette rubrique).
Si CertificateValidationMode a la valeur ChainTrust ou PeerOrChainTrust, affectez l'une des valeurs appropriées de l'énumération RevocationMode à la propriété X509RevocationMode. Notez que le mode de révocation n’est pas utilisé dans les modes de validation PeerTrust ou Custom.
Si nécessaire, assignez une instance d'une classe personnalisée SamlSerializer à la propriété SamlSerializer. Un sérialiseur SAML (Security Assertions Markup Language) personnalisé est nécessaire, par exemple pour l'analyse des assertions SAML personnalisées.
Pour définir les propriétés de IssuedTokenServiceCredential dans la configuration
Créez un élément <issuedTokenAuthentication> en tant qu'enfant de l'élément <serviceCredentials>.
Affectez l’attribut allowUntrustedRsaIssuers de l’élément <issuedTokenAuthentication> sur true en cas d'authentification d'un jeton auto-émis, tel qu'une carte CardSpace.
Créez un élément <knownCertificates> en tant qu'enfant de l'élément <issuedTokenAuthentication>.
Créez zéro ou plusieurs éléments <add> en tant qu'enfants de l'élément <knownCertificates> et spécifiez comment localiser le certificat à l'aide des attributs storeLocation, storeName, x509FindType et findValue.
Si nécessaire, affectez l'attribut samlSerializer de l'élément <issuedTokenAuthentication> au nom de type de la classe SamlSerializer personnalisée.
// This method configures the IssuedTokenAuthentication property of a ServiceHost.
public static void ConfigureIssuedTokenServiceCredentials(
ServiceHost sh, bool allowCardspaceTokens, IList<X509Certificate2> knownissuers,
X509CertificateValidationMode certMode, X509RevocationMode revocationMode, SamlSerializer ser )
{
// Allow CardSpace tokens.
sh.Credentials.IssuedTokenAuthentication.AllowUntrustedRsaIssuers = allowCardspaceTokens;
// Set up known issuer certificates.
foreach(X509Certificate2 cert in knownissuers)
sh.Credentials.IssuedTokenAuthentication.KnownCertificates.Add ( cert );
// Set issuer certificate validation and revocation checking modes.
sh.Credentials.IssuedTokenAuthentication.CertificateValidationMode =
X509CertificateValidationMode.PeerOrChainTrust;
sh.Credentials.IssuedTokenAuthentication.RevocationMode = X509RevocationMode.Online;
sh.Credentials.IssuedTokenAuthentication.TrustedStoreLocation = StoreLocation.LocalMachine;
// Set the SamlSerializer, if one is specified.
if ( ser != null )
sh.Credentials.IssuedTokenAuthentication.SamlSerializer = ser;
}
' This method configures the IssuedTokenAuthentication property of a ServiceHost.
Public Shared Sub ConfigureIssuedTokenServiceCredentials( _
ByVal sh As ServiceHost, _
ByVal allowCardspaceTokens As Boolean, _
ByVal knownissuers As IList(Of X509Certificate2), _
ByVal certMode As X509CertificateValidationMode, _
ByVal revocationMode As X509RevocationMode, _
ByVal ser As SamlSerializer _
)
' Allow CardSpace tokens.
sh.Credentials.IssuedTokenAuthentication.AllowUntrustedRsaIssuers = _
allowCardspaceTokens
' Set up known issuer certificates.
Dim cert As X509Certificate2
For Each cert In knownissuers
sh.Credentials.IssuedTokenAuthentication.KnownCertificates.Add(cert)
Next cert
' Set issuer certificate validation and revocation checking modes.
sh.Credentials.IssuedTokenAuthentication.CertificateValidationMode = _
X509CertificateValidationMode.PeerOrChainTrust
sh.Credentials.IssuedTokenAuthentication.RevocationMode = _
X509RevocationMode.Online
' Set the SamlSerializer, if one is specified.
If Not (ser Is Nothing) Then
sh.Credentials.IssuedTokenAuthentication.SamlSerializer = ser
End If
End Sub
Pour qu'un service fédéré authentifie un client, les conditions suivantes doivent être vérifiées pour le jeton émis :
Lorsque la signature numérique du jeton émis utilise un identificateur de clé de sécurité RSA, la propriété AllowUntrustedRsaIssuers doit avoir la valeur true.
Lorsque la signature du jeton émis utilise un numéro de série d’émetteur X.509, un identificateur de clé du sujet X.509 ou un identificateur de sécurité d’empreinte numérique X.509, le jeton émis doit être signé par un certificat de la collection retournée par la propriété KnownCertificates de la classe IssuedTokenServiceCredential.
Lorsque le jeton émis est signé à l'aide d'un certificat X.509, le certificat doit valider suivant la sémantique spécifiée par la valeur de la propriété CertificateValidationMode, indépendamment du fait que le certificat a été envoyé à la partie de confiance en tant que X509RawDataKeyIdentifierClause ou qu'il a été obtenu à partir de la propriété KnownCertificates. Pour plus d’informations sur la validation des certificats X.509, consultez Utilisation des certificats.
Expliquez les fonctionnalités de Microsoft Entra ID pour moderniser des solutions d’identité, implémenter des solutions hybrides et une gouvernance des identités.