SecurityTokenService.GetOutputClaimsIdentity Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
En cas de substitution dans une classe dérivée, cette méthode retourne une collection de sujets de sortie à inclure dans le jeton émis.
protected:
abstract System::Security::Claims::ClaimsIdentity ^ GetOutputClaimsIdentity(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request, System::IdentityModel::Scope ^ scope);
protected abstract System.Security.Claims.ClaimsIdentity GetOutputClaimsIdentity (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request, System.IdentityModel.Scope scope);
abstract member GetOutputClaimsIdentity : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken * System.IdentityModel.Scope -> System.Security.Claims.ClaimsIdentity
Protected MustOverride Function GetOutputClaimsIdentity (principal As ClaimsPrincipal, request As RequestSecurityToken, scope As Scope) As ClaimsIdentity
Paramètres
- principal
- ClaimsPrincipal
ClaimsPrincipal qui représente l'identité du demandeur du jeton.
- request
- RequestSecurityToken
RequestSecurityToken qui représente la demande de jeton de sécurité. Cela inclut le message de demande ainsi que d'autres informations connexes clientes, telles que le contexte d'autorisation.
- scope
- Scope
Scope qui contient des informations sur la partie de confiance associée à la requête. Il s'agit de l'objet Scope qui a été retourné par la méthode GetScope(ClaimsPrincipal, RequestSecurityToken).
Retours
ClaimsIdentity qui contient la collection des revendications qui sera placée dans le jeton de sécurité émis.
Exemples
L’exemple de code utilisé dans cette rubrique est tiré de l’exemple Custom Token
. Cet exemple fournit des classes personnalisées qui permettent le traitement des jetons web simples (SWT) et inclut une implémentation d’un STS passif capable de servir un jeton SWT. Pour obtenir un exemple d’implémentation d’un STS actif, vous pouvez voir l’exemple Federation Metadata
. Pour plus d’informations sur ces exemples et d’autres exemples disponibles pour WIF et sur l’emplacement où les télécharger, consultez Index d’exemple de code WIF. Le code suivant montre comment remplacer la GetOutputClaimsIdentity méthode pour retourner des revendications pour votre STS. Dans cet exemple, le message RST (Request Security Token) est ignoré et une collection de revendications basées sur l’utilisateur comme authentifié au niveau du STS est retournée.
/// <summary>
/// This method returns the content of the issued token. The content is represented as a set of
/// IClaimIdentity intances, each instance corresponds to a single issued token. Currently, the Windows Identity Foundation only
/// supports a single token issuance, so the returned collection must always contain only a single instance.
/// </summary>
/// <param name="scope">The scope that was previously returned by GetScope method</param>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST, we don't use this in our implementation</param>
/// <returns></returns>
protected override ClaimsIdentity GetOutputClaimsIdentity( ClaimsPrincipal principal, RequestSecurityToken request, Scope scope )
{
//
// Return a default claim set which contains a custom decision claim
// Here you can actually examine the user by looking at the IClaimsPrincipal and
// return the right decision based on that.
//
ClaimsIdentity outgoingIdentity = new ClaimsIdentity();
outgoingIdentity.AddClaims(principal.Claims);
return outgoingIdentity;
}
Remarques
La GetOutputClaimsIdentity méthode est appelée à partir du pipeline d’émission de jetons, qui est implémenté par la Issue méthode . Elle retourne un ClaimsIdentity qui contient les revendications à inclure dans le jeton de sécurité émis en fonction du demandeur du jeton (le principal
paramètre), du RST entrant (le request
paramètre) et de la partie de confiance à laquelle le jeton est destiné (le scope
paramètre ). La logique de cette méthode consiste principalement à répondre aux questions suivantes :
Quels types de revendications doivent être inclus dans la réponse en fonction du rpr auquel elle est destinée ? En règle générale, cela est décidé par rp à partir de listes de types de revendications requis pour chaque RP ou sur une base par demande en examinant la Claims propriété de la demande. Toutefois, la logique et les détails permettant de déterminer les revendications à inclure dans la réponse sont entièrement en fonction de votre implémentation.
Quelles valeurs de revendication doivent être affectées aux revendications dans la réponse ? Pour un fournisseur d’identité (IP-STS), cela signifie généralement utiliser une ou plusieurs revendications du demandeur ClaimsPrincipal (fournies par le
principal
paramètre) pour accéder à un magasin (ou à une autre entité) afin de retourner des valeurs pour les types de revendications requis. Pour un fournisseur de fédération (R-STS), cela signifie généralement effectuer un type de traitement sur les revendications entrantes du demandeur pour répondre à la demande ; peut-être effectuer un filtrage ou une transformation sur certaines revendications présentées par le demandeur, tout en passant d’autres par le biais de non modifiés. Bien sûr, comme dans le cas de décider quelles revendications inclure dans la réponse, les détails et la logique de la façon de déterminer les valeurs de ces revendications sont à votre implémentation.
Notes pour les responsables de l’implémentation
Vous devez substituer cette méthode dans votre implémentation de la classe de SecurityTokenService.