Idioma

SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Método

Definição

Emite um token de segurança.

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

Parâmetros

principal
ClaimsPrincipal

A ClaimsPrincipal que representa a identidade do requerente do token.

request
RequestSecurityToken

A que representa o pedido de RequestSecurityToken token de segurança. Isto inclui a mensagem de pedido, bem como outras informações relacionadas com o cliente, como o contexto de autorização.

Devoluções

A RequestSecurityTokenResponse que contém o token de segurança emitido.

Observações

Este método implementa a ligação Issue definida na especificação WS-Trust. A implementação padrão do Issue método processa o pedido recebido (RST) através de um pipeline de emissão de tokens (emissão de reivindicações) e devolve ou uma resposta (RSTR) que contém um token de segurança com as reivindicações apropriadas para autenticar o requerente junto do RP ou uma exceção apropriada. O pipeline de emissão de tokens na implementação padrão consiste em chamadas para os seguintes métodos (da SecurityTokenService classe).

  1. O ValidateRequest método para validar o pedido (RST).

  2. O GetScope método para obter um Scope objeto que contenha informação sobre a parte confiável (RP) associada ao pedido. Deve ultrapassar este método. Se GetScope devolver null, a InvalidOperationException é lançado.

  3. O CreateSecurityTokenDescriptor método para devolver um descritor de token de segurança baseado na RST e no Scope objeto devolvido no passo anterior. O descritor de token de segurança (SecurityTokenDescriptor) contém informações sobre o pedido numa forma que pode ser usada por um gestor de tokens. A SecurityTokenService.SecurityTokenDescriptor propriedade é definida para o descritor devolvido pela chamada. Se null for devolvido ou se a SigningCredentials propriedade do descritor for null, e InvalidOperationException é lançado. A exceção também é lançada se a Scope.TokenEncryptionRequired propriedade for true mas a EncryptingCredentials propriedade no descritor devolvido for null.

  4. O GetSecurityTokenHandler método para obter o gestor de tokens apropriado com base no tipo de token solicitado. Se null for devolvido, a NotImplementedException é lançado.

  5. O GetIssuerName método para obter o nome do emissor para o token. Lança um InvalidOperationException se o nome for null ou vazia; caso contrário, define a TokenIssuerName propriedade no descritor.

  6. O GetTokenLifetime método para obter a vida útil do token define a Lifetime propriedade no descritor.

  7. O GetProofToken método para incluir o token proof no token emitido define a Proof propriedade no descritor.

  8. O GetOutputClaimsIdentity método para incluir as reivindicações no token emitido define a Subject propriedade no descritor. Deve ultrapassar este método.

  9. O GetResponse método para criar uma resposta (RSTR) que contém o token emitido.

Pode sobrescrever o Issue método para implementar um pipeline personalizado de emissão de tokens; no entanto, isto normalmente não é necessário nos ambientes de desenvolvimento e teste para os quais a maioria das implementações personalizadas da SecurityTokenService classe se destina. Em muitos destes casos, sobrepõe-se os GetOutputClaimsIdentity métodos and GetScope e, opcionalmente, sobrepõe-se ao ValidateRequest método para fornecer um STS funcional para o seu ambiente. Se for necessária personalização adicional, pode frequentemente fornecê-la sobrepondo os métodos que implementam cada etapa do pipeline de emissão de tokens padrão listado acima.

Aplica-se a