SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
Um ClaimsPrincipal que representa a identidade do solicitante do token.
- request
- RequestSecurityToken
Um RequestSecurityToken que representa a solicitação do token de segurança. Isso inclui a mensagem de solicitação, bem como outras informações relacionadas ao cliente, como o contexto de autorização.
Retornos
Um RequestSecurityTokenResponse que contém o token de segurança emitido.
Comentários
Esse método implementa a associação Issue definida na especificação WS-Trust. A implementação padrão do Issue método processa a RST (solicitação de entrada) por meio de um pipeline de emissão de token (emissão de declarações) e retorna uma resposta (RSTR) que contém um token de segurança com as declarações apropriadas para autenticar o solicitante com o RP ou uma exceção apropriada. O pipeline de emissão de token na implementação padrão consiste em chamadas para os métodos a seguir (da SecurityTokenService classe ).
O ValidateRequest método para validar a solicitação (RST).
O GetScope método para obter um Scope objeto que contém informações sobre a RP (terceira parte confiável) associada à solicitação. Você deve substituir esse método. Se GetScope retornar
null
, um InvalidOperationException será gerado.O CreateSecurityTokenDescriptor método para retornar um descritor de token de segurança com base no RST e no Scope objeto retornado na etapa anterior. O descritor de token de segurança (SecurityTokenDescriptor) contém informações sobre a solicitação em um formulário que pode ser usado por um manipulador de token. A SecurityTokenService.SecurityTokenDescriptor propriedade é definida como o descritor retornado pela chamada. Se
null
for retornado ou se a SigningCredentials propriedade do descritor fornull
, um InvalidOperationException será gerado. A exceção também será gerada se a Scope.TokenEncryptionRequired propriedade fortrue
, mas a EncryptingCredentials propriedade no descritor retornado fornull
.O GetSecurityTokenHandler método para obter o manipulador de token apropriado com base no tipo de token solicitado. Se
null
for retornado, um NotImplementedException será gerado.O GetIssuerName método para obter o nome do emissor para o token. Gerará um InvalidOperationException se o nome estiver
null
ou estiver vazio; caso contrário, definirá a TokenIssuerName propriedade no descritor.O GetTokenLifetime método para obter o tempo de vida do token e define a Lifetime propriedade no descritor.
O GetProofToken método para obter o token de prova a ser incluído no token emitido e define a Proof propriedade no descritor.
O GetOutputClaimsIdentity método para obter as declarações a serem incluídas no token emitido e define a Subject propriedade no descritor. Você deve substituir esse método.
O GetResponse método para criar uma resposta (RSTR) que contém o token emitido.
Você pode substituir o Issue método para implementar um pipeline de emissão de token personalizado; no entanto, isso normalmente não é necessário nos ambientes de desenvolvimento e teste para os quais a maioria das implementações personalizadas da SecurityTokenService classe são destinadas. Em muitos desses casos, você substitui os GetOutputClaimsIdentity métodos e GetScope e, opcionalmente, substitui o ValidateRequest método para fornecer um STS a serviço para seu ambiente. Se for necessária uma personalização adicional, geralmente você poderá fornecê-la substituindo os métodos que implementam cada estágio do pipeline de emissão de token padrão listado acima.