SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Método

Definición

Emite un token de seguridad.

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

ClaimsPrincipal que representa la identidad del solicitante del token.

request
RequestSecurityToken

RequestSecurityToken que representa la solicitud del token de seguridad. Esto incluye el mensaje de solicitud junto con otra información relacionada del cliente como el contexto de autorización.

Devoluciones

RequestSecurityTokenResponse que contiene el token de seguridad emitido.

Comentarios

Este método implementa el enlace Issue definido en la especificación WS-Trust. La implementación predeterminada del Issue método procesa la solicitud entrante (RST) a través de una canalización de emisión de tokens (emisión de notificaciones) y devuelve una respuesta (RSTR) que contiene un token de seguridad con las notificaciones adecuadas para autenticar al solicitante con el RP o una excepción adecuada. La canalización de emisión de tokens en la implementación predeterminada consta de llamadas a los métodos siguientes (de la SecurityTokenService clase ).

  1. Método ValidateRequest para validar la solicitud (RST).

  2. Método GetScope para obtener un Scope objeto que contiene información sobre el usuario de confianza (RP) asociado a la solicitud. Debe invalidar este método. Si GetScope devuelve null, se produce una InvalidOperationException excepción .

  3. Método CreateSecurityTokenDescriptor para devolver un descriptor de token de seguridad basado en el RST y el Scope objeto devuelto en el paso anterior. El descriptor de token de seguridad (SecurityTokenDescriptor) contiene información sobre la solicitud en un formulario que puede usar un controlador de tokens. La SecurityTokenService.SecurityTokenDescriptor propiedad se establece en el descriptor devuelto por la llamada. Si null se devuelve o si la SigningCredentials propiedad del descriptor es null, se produce una InvalidOperationException excepción . La excepción también se produce si la Scope.TokenEncryptionRequired propiedad es true pero la EncryptingCredentials propiedad del descriptor devuelto es null.

  4. Método GetSecurityTokenHandler para obtener el controlador de tokens adecuado en función del tipo de token solicitado. Si null se devuelve , se produce una NotImplementedException excepción .

  5. Método GetIssuerName para obtener el nombre del emisor del token. Produce si InvalidOperationException el nombre es o está null vacío; de lo contrario, establece la TokenIssuerName propiedad en el descriptor.

  6. El GetTokenLifetime método para obtener la duración del token y establece la Lifetime propiedad en el descriptor.

  7. El GetProofToken método para obtener el token de prueba que se va a incluir en el token emitido y establece la Proof propiedad en el descriptor.

  8. El GetOutputClaimsIdentity método para obtener las notificaciones que se van a incluir en el token emitido y establece la Subject propiedad en el descriptor. Debe invalidar este método.

  9. Método GetResponse para crear una respuesta (RSTR) que contiene el token emitido.

Puede invalidar el Issue método para implementar una canalización de emisión de tokens personalizada; sin embargo, esto normalmente no es necesario en los entornos de desarrollo y prueba para los que están pensadas la mayoría de las implementaciones personalizadas de la SecurityTokenService clase. En muchos de estos casos, invalida los GetOutputClaimsIdentity métodos y GetScope y, opcionalmente, invalida el ValidateRequest método para proporcionar un STS que se pueda atender para su entorno. Si es necesaria una personalización adicional, a menudo puede proporcionarla invalidando los métodos que implementan cada fase de la canalización de emisión de tokens predeterminada indicada anteriormente.

Se aplica a