Partager via


Site Web du service d'émission de jeton de sécurité ASP.NET

Avertissement

Ne cliquez pas avec le bouton droit sur votre projet et ne sélectionnez pas « Ajouter référence STS » dans un projet STS ASP.NET. Vous remplaceriez les métadonnées de votre STS.

Dans Visual Studio, ouvrez le menu Fichier et sélectionnez Nouveau, puis Site Web. Sélectionnez Site Web du service d'émission de jeton de sécurité ASP.NET.

Si vous examinez votre fichier web.config, vous pouvez voir plusieurs différences par rapport au fichier web.config d'un site Web ASP.NET standard.

  • Les paramètres d'application suivants ont été ajoutés :

    <appSettings> <add key="IssuerName" value="PassiveSigninSTS"/> <add key="SigningCertificateName" value="CN=STSTestCert"/> <add key="EncryptingCertificateName" value=""/> </appSettings>
    

    Le STS utilise un certificat par défaut pour signer les jetons qu'il émet. Ce certificat est nommé « STSTestCert » et est ajouté automatiquement à votre magasin de certificats pour être utilisé par le STS. Le fichier de certificat est présent dans le projet STS. Le mot de passe pour le fichier est « STSTest ». Il ne doit pas être utilisé dans un exercice de production. Vous pouvez remplacer le certificat par défaut par tout autre certificat. Vérifiez que l'utilisateur de votre processus IIS a accès à la clé privée pour tout certificat de ce type. Vous pouvez également choisir de créer un type dérivé de IssuerNameRegistry pour exécuter une validation par programme des certificats des émetteurs approuvés.

  • Tous les utilisateurs se sont vus accorder l'accès aux métadonnées de fédération. Les métadonnées de fédération contiennent des informations relatives à la clé publique du certificat de signature de jeton, aux points de terminaison exposés par le STS, et aux revendications émises.

    <location path="FederationMetadata"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
    
  • L'élément <system.Web>/<assemblies> contient à présent une référence à l'assembly Microsoft.IdentityModel.dll :

    <add assembly="Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    
  • L'authentification par formulaire et une page de connexion sont spécifiées :

    <authentication mode="Forms"> <forms loginUrl="Login.aspx" protection="All" timeout="30" name=".ASPXAUTH" path="/" requireSSL="false" slidingExpiration="true" defaultUrl="default.aspx" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" /> </authentication> <!-- Deny Anonymous users. --> <authorization> <deny users="?" /> </authorization>
    
  • Une trace a été ajoutée, dont vous pouvez supprimer les commentaires pour activer le suivi. Pour plus d'informations, consultez Suivi WIF et Procédure : Activer le suivi.

    <!-- Uncomment the lines below to enable WIF tracing to: WIFTrace.e2e. Open the trace file using the SvcTraceViewer.exe tool (shipped with the WCF SDK available from Microsoft) or a xml viewer. Refer to MSDN if you wish to add WCF tracing. -->
    
      <!--<system.diagnostics> <sources> <source name="Microsoft.IdentityModel" switchValue="Verbose"> <listeners> <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="WIFTrace.e2e" /> </listeners> </source> </sources> <trace autoflush="true" /> </system.diagnostics>-->
    

Dans le dossier App_Code, ouvrez CustomSecurityTokenService.cs.

  • Mettez à jour static readonly string[] PassiveRedirectBasedClaimsAwareWebApps pour inclure les URL des applications de partie de confiance auxquelles vous voulez que ce STS émette des jetons.

  • Dans la substitution de la méthode GetOutputClaimsIdentity, ajoutez les revendications que votre application de partie de confiance demande au STS d'émettre, ainsi que toute revendication personnalisée que vous voulez que votre STS émette.

CustomSecurityTokenService.cs implémente les méthodes obligatoires suivantes.

  1. GetScope. Cette méthode prend le IClaimsPrincipal de l'appelant et le RST entrant et retourne la configuration pour la demande d'émission du jeton, représentée par la classe Scope. Dans cette méthode, vous pouvez normaliser l'adresse de la partie de confiance et choisir les clés de signature et de chiffrement. En général, les jetons de sécurité sont chiffrés afin que seule la partie de confiance puisse les lire.

  2. GetOutputClaimsIdentity. Cette méthode prend le IClaimsPrincipal de l'appelant, le RST entrant et l'objet Scope retourné par GetScope et retourne l'IClaimsIdentity à inclure dans le jeton émis. Vous pouvez ainsi choisir les revendications incluses dans le jeton.