Cette documentation est archivée et n’est pas conservée.

Procédure : Générer un site d'émission de cartes gérées

Windows Identity Foundation

Une carte gérée représente des métadonnées concernant un service d'émission de jeton de sécurité (STS), telles que l'adresse du service, sa méthode d'authentification et les revendications qu'il émet. Lorsque vous créez un service pour émettre des jetons pour les sélecteurs d'identité, vous devez également émettre des cartes d'informations gérées aux utilisateurs. Cette rubrique explique comment procéder.

Émission d'une carte

L'exemple de code suivant montre comment, dans la page ASP.NET, émettre des cartes d'informations gérées avec des adresses codées en dur pour le STS et la partie de confiance.


protected void IssueCard() { // STS certificate X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); X509Certificate2Collection certificateCollection = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, "CN=localhost", true); store.Close(); X509Certificate2 stsCertificate = certificateCollection[0];

    // STS endpoint addresses string stsAddress = "http://localhost/Sts"; string stsMex = "https://localhost/mex"; // Initialize the card with the STS signing certificate and the STS issuer name InformationCard card = new InformationCard(stsCertificate, "http://myissuer"); // Set the claim types supported by the STS card.SupportedClaimTypeList.Add(new DisplayClaim(ClaimTypes.Role)); // Set the token types supported by the STS card.SupportedTokenTypeList.Add(Saml11SecurityTokenHandler.OasisWssSamlTokenProfile11); // The TokenService class describes an STS's endpoint information // This code demonstrates how to setup a card for an sts endpoint // that expects Kerberos authentication TokenService stsEndpoint = new TokenService(new TokenServiceEndpoint(stsAddress, stsCertificate, stsMex, UserCredentialType.KerberosV5Credential)); card.TokenServiceList.Add(stsEndpoint); // Set the card language card.Language = "en"; InformationCardSerializer cardSerializer = new InformationCardSerializer(); // Write this out to the current directory FileStream cardStream = new FileStream("InformationCard.crd", FileMode.Create, FileAccess.ReadWrite); cardSerializer.WriteCard(cardStream, card); cardStream.Close(); }
noteRemarque :
Nous vous recommandons que votre STS alimente un cache des cartes d'informations qu'il émet. Ainsi, lorsqu'il reçoit une demande d'émission de jeton, il peut vérifier que la demande contient une référence à une carte d'informations connue et actuelle. Si la référence correspond à une carte d'informations inconnue ou à une carte d'informations qui a expiré, le STS peut gérer la demande en conséquence.

Afficher: