Partager via


SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Méthode

Définition

Émet un jeton de sécurité.

public:
 virtual System::IdentityModel::Protocols::WSTrust::RequestSecurityTokenResponse ^ Issue(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request);
public virtual System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Issue (System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request);
abstract member Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
override this.Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
Public Overridable Function Issue (principal As ClaimsPrincipal, request As RequestSecurityToken) As RequestSecurityTokenResponse

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.

Retours

RequestSecurityTokenResponse qui contient le jeton de sécurité émis.

Remarques

Cette méthode implémente la liaison issue définie dans la spécification WS-Trust. L’implémentation par défaut de la Issue méthode traite la requête entrante (RST) via un pipeline d’émission de jetons (émission de revendications) et retourne une réponse (RSTR) qui contient un jeton de sécurité avec les revendications appropriées pour authentifier le demandeur auprès du fournisseur de ressources ou une exception appropriée. Le pipeline d’émission de jetons dans l’implémentation par défaut se compose d’appels aux méthodes suivantes (de la SecurityTokenService classe ).

  1. Méthode ValidateRequest permettant de valider la requête (RST).

  2. Méthode GetScope permettant d’obtenir un Scope objet qui contient des informations sur la partie de confiance associée à la demande. Vous devez remplacer cette méthode. Si GetScope retourne null, un InvalidOperationException est levée.

  3. Méthode CreateSecurityTokenDescriptor permettant de retourner un descripteur de jeton de sécurité basé sur le RST et l’objet Scope retourné à l’étape précédente. Le descripteur de jeton de sécurité (SecurityTokenDescriptor) contient des informations sur la demande dans un formulaire qui peut être utilisé par un gestionnaire de jetons. La SecurityTokenService.SecurityTokenDescriptor propriété est définie sur le descripteur retourné par l’appel. Si null est retourné ou si la SigningCredentials propriété du descripteur est null, un InvalidOperationException est levée. L’exception est également levée si la Scope.TokenEncryptionRequired propriété est true , mais que la EncryptingCredentials propriété sur le descripteur retourné est null.

  4. Méthode GetSecurityTokenHandler permettant d’obtenir le gestionnaire de jetons approprié en fonction du type de jeton demandé. Si null est retourné, un NotImplementedException est levée.

  5. Méthode GetIssuerName permettant d’obtenir le nom de l’émetteur pour le jeton. Lève un InvalidOperationException si le nom est null ou vide ; sinon, définit la TokenIssuerName propriété sur le descripteur.

  6. Méthode GetTokenLifetime permettant d’obtenir la durée de vie du jeton et définit la Lifetime propriété sur le descripteur.

  7. Méthode GetProofToken permettant d’obtenir le jeton de preuve à inclure dans le jeton émis et définit la Proof propriété sur le descripteur.

  8. Méthode GetOutputClaimsIdentity permettant d’obtenir les revendications à inclure dans le jeton émis et définit la Subject propriété sur le descripteur. Vous devez remplacer cette méthode.

  9. Méthode GetResponse permettant de créer une réponse (RSTR) qui contient le jeton émis.

Vous pouvez remplacer la Issue méthode pour implémenter un pipeline d’émission de jetons personnalisé. Toutefois, cela n’est généralement pas nécessaire dans les environnements de développement et de test pour lesquels la plupart des implémentations personnalisées de la SecurityTokenService classe sont prévues. Dans la plupart de ces cas, vous remplacez les GetOutputClaimsIdentity méthodes et GetScope et, éventuellement, remplacez la ValidateRequest méthode pour fournir un STS serviceable pour votre environnement. Si une personnalisation supplémentaire est nécessaire, vous pouvez souvent la fournir en remplaçant les méthodes qui implémentent chaque étape du pipeline d’émission de jetons par défaut répertorié ci-dessus.

S’applique à