RequestSecurityToken Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Representa o elemento wst:RequestSecurityToken (RST), que é usado para solicitar um token de segurança.
public ref class RequestSecurityToken : System::IdentityModel::Protocols::WSTrust::WSTrustMessage
public class RequestSecurityToken : System.IdentityModel.Protocols.WSTrust.WSTrustMessage
type RequestSecurityToken = class
inherit WSTrustMessage
Public Class RequestSecurityToken
Inherits WSTrustMessage
- Herança
Exemplos
O exemplo de código utilizado neste tópico é retirado da Custom Token amostra. Este exemplo fornece classes personalizadas que permitem o processamento de Simples Web Tokens (SWT) e inclui uma implementação de um STS passivo capaz de servir um token SWT. O STS é implementado por uma classe derivada de SecurityTokenService. Muitos dos métodos da SecurityTokenService classe que são chamados do seu pipeline de emissão de tokens aceitam um RequestSecurityToken objeto como um dos seus parâmetros. Para informações sobre esta amostra e outras amostras disponíveis para WIF e sobre onde as descarregar, consulte o Índice de Exemplos de Código WIF.
O exemplo de código seguinte mostra uma implementação do SecurityTokenService.GetScope método. O método toma a RequestSecurityToken como um dos seus parâmetros e as propriedades desse parâmetro são usadas para definir propriedades no Scope objeto que é devolvido pelo método.
// Certificate Constants
private const string SIGNING_CERTIFICATE_NAME = "CN=localhost";
private const string ENCRYPTING_CERTIFICATE_NAME = "CN=localhost";
private SigningCredentials _signingCreds;
private EncryptingCredentials _encryptingCreds;
// Used for validating applies to address, set to URI used in RP app of application, could also have been done via config
private string _addressExpected = "http://localhost:19851/";
/// <summary>
/// This method returns the configuration for the token issuance request. The configuration
/// is represented by the Scope class. In our case, we are only capable of issuing a token to a
/// single RP identity represented by the _encryptingCreds field.
/// </summary>
/// <param name="principal">The caller's principal</param>
/// <param name="request">The incoming RST</param>
/// <returns></returns>
protected override Scope GetScope(ClaimsPrincipal principal, RequestSecurityToken request)
{
// Validate the AppliesTo address
ValidateAppliesTo( request.AppliesTo );
// Create the scope using the request AppliesTo address and the RP identity
Scope scope = new Scope( request.AppliesTo.Uri.AbsoluteUri, _signingCreds );
if (Uri.IsWellFormedUriString(request.ReplyTo, UriKind.Absolute))
{
if (request.AppliesTo.Uri.Host != new Uri(request.ReplyTo).Host)
scope.ReplyToAddress = request.AppliesTo.Uri.AbsoluteUri;
else
scope.ReplyToAddress = request.ReplyTo;
}
else
{
Uri resultUri = null;
if (Uri.TryCreate(request.AppliesTo.Uri, request.ReplyTo, out resultUri))
scope.ReplyToAddress = resultUri.AbsoluteUri;
else
scope.ReplyToAddress = request.AppliesTo.Uri.ToString() ;
}
// Note: In this sample app only a single RP identity is shown, which is localhost, and the certificate of that RP is
// populated as _encryptingCreds
// If you have multiple RPs for the STS you would select the certificate that is specific to
// the RP that requests the token and then use that for _encryptingCreds
scope.EncryptingCredentials = _encryptingCreds;
return scope;
}
/// <summary>
/// Validates the appliesTo and throws an exception if the appliesTo is null or appliesTo contains some unexpected address.
/// </summary>
/// <param name="appliesTo">The AppliesTo parameter in the request that came in (RST)</param>
/// <returns></returns>
void ValidateAppliesTo(EndpointReference appliesTo)
{
if (appliesTo == null)
{
throw new InvalidRequestException("The appliesTo is null.");
}
if (!appliesTo.Uri.Equals(new Uri(_addressExpected)))
{
throw new InvalidRequestException(String.Format("The relying party address is not valid. Expected value is {0}, the actual value is {1}.", _addressExpected, appliesTo.Uri.AbsoluteUri));
}
}
Observações
O elemento wst:RequestSecurityToken (mensagem) contém os parâmetros e propriedades usados para solicitar um token de segurança a um serviço de token de segurança (STS). A mensagem (ou elemento) é abreviada como RST. A RequestSecurityToken classe contém propriedades que representam os elementos da RST. Um RST pode formar um pedido que corresponda a qualquer uma das vinculações de pedido definidas pelo WS-Trust; por exemplo, a ligação Emissão, a vinculação Renovação, a vinculação Validar ou a vinculação Cancelar. Muitas das propriedades da RequestSecurityToken classe correspondem a elementos que estão presentes apenas em tipos específicos de pedidos, conforme definido por estas ligações. Dependendo do tipo de pedido que um determinado RequestSecurityToken objeto representa ou dos parâmetros presentes no pedido específico que representa, algumas propriedades do objeto podem ser null.
O STS devolve uma resposta ao pedido numa mensagem que contém um elemento wst:RequestSecurityTokenResponse (RSTR). Esta mensagem é representada pela RequestSecurityTokenResponse classe.
Para mais informações sobre o elemento que esta classe representa, consulte a especificação WS-Trust aplicável ao seu cenário: WS-Trust fevereiro de 2005, WS-Trust 1.3 ou WS-Trust 1.4.
Construtores
| Name | Description |
|---|---|
| RequestSecurityToken() |
Inicializa uma nova instância da RequestSecurityToken classe. |
| RequestSecurityToken(String, String) |
Inicializa uma nova instância da RequestSecurityToken classe com o tipo de pedido especificado. |
| RequestSecurityToken(String) |
Inicializa uma nova instância da RequestSecurityToken classe com o tipo de pedido especificado. |
Propriedades
| Name | Description |
|---|---|
| ActAs |
Obtém ou define o token de segurança para a identidade que o requerente está a tentar assumir. |
| AdditionalContext |
Obtém ou define a informação adicional de contexto para o pedido. |
| AllowPostdating |
Obtém ou define o conteúdo do elemento wst:AllowPostdating. (Herdado de WSTrustMessage) |
| AppliesTo |
Obtém ou define o conteúdo do elemento wsp:AppliesTo. (Herdado de WSTrustMessage) |
| AuthenticationType |
Obtém ou define o conteúdo do elemento wst:AuthenticationType. (Herdado de WSTrustMessage) |
| BinaryExchange |
Obtém ou define o conteúdo do elemento wst:BinaryExchange. (Herdado de WSTrustMessage) |
| CancelTarget |
Recebe ou define o token para ser cancelado num pedido de cancelamento WS-Trust. |
| CanonicalizationAlgorithm |
Obtém ou define o conteúdo do elemento wst:CanonicalizationAlgorithm. (Herdado de WSTrustMessage) |
| Claims |
Obtém os tipos de reclamação solicitados pelo cliente (solicitante). |
| ComputedKeyAlgorithm |
Obtém um URI que representa o algoritmo desejado a usar quando as chaves calculadas são usadas para tokens emitidos. |
| Context |
Obtém ou define o conteúdo do atributo Context na RST ou RSTR. (Herdado de WSTrustMessage) |
| Delegatable |
Recebe ou define um valor que especifica se o token emitido deve ser marcado como delegável. |
| DelegateTo |
Obtém ou define a identidade à qual o token emitido deve ser delegado. |
| Encryption |
Obtém ou define informação sobre o token e a chave para usar ao encriptar. |
| EncryptionAlgorithm |
Obtém ou define o conteúdo do elemento wst:EncryptionAlgorithm. (Herdado de WSTrustMessage) |
| EncryptWith |
Obtém ou define o conteúdo do elemento wst:EncryptWith. (Herdado de WSTrustMessage) |
| Entropy |
Obtém ou define o conteúdo do elemento wst:Entropy. (Herdado de WSTrustMessage) |
| Forwardable |
Recebe ou define um valor que especifica se o token emitido deve ser marcado como encaminhável. |
| Issuer |
Recebe ou define o emissor do token wst:OnBehalfOf. |
| KeySizeInBits |
Obtém ou define o conteúdo do elemento wst:KeySize dentro de uma mensagem RequestSecurityToken (RST). (Herdado de WSTrustMessage) |
| KeyType |
Obtém ou define o conteúdo do elemento wst:KeyType dentro de uma mensagem RequestSecurityToken (RST). (Herdado de WSTrustMessage) |
| KeyWrapAlgorithm |
Obtém ou define o conteúdo do elemento wst:KeyWrapAlgorithm. (Herdado de WSTrustMessage) |
| Lifetime |
Obtém ou define o conteúdo do elemento wst:Lifetime dentro de uma mensagem RequestSecurityToken (RST). (Herdado de WSTrustMessage) |
| OnBehalfOf |
Obtém ou define o token para a identidade em nome da qual o pedido está a ser feito. |
| Participants |
Obtém ou define os participantes autorizados a usar o token emitido. |
| ProofEncryption |
Obtém ou define o token a ser usado para encriptar o token de prova. |
| Properties |
Obtém o saco de propriedades para estender o objeto. (Herdado de OpenObject) |
| Renewing |
Recebe ou define a semântica de renovação para um pedido de renovação WS-Trust. |
| RenewTarget |
Recebe ou define o token para ser renovado num pedido de renovação WS-Trust. |
| ReplyTo |
Obtém ou define o endereço a ser usado para responder à Parte Confiável. (Herdado de WSTrustMessage) |
| RequestType |
Obtém ou define o elemento wst:RequestType. (Herdado de WSTrustMessage) |
| SecondaryParameters |
Obtém ou define parâmetros para os quais o requerente não é o originador. |
| SignatureAlgorithm |
Obtém ou define o conteúdo do elemento wst:SignatureAlgorithm. (Herdado de WSTrustMessage) |
| SignWith |
Obtém ou define o conteúdo do elemento wst:SignWith. (Herdado de WSTrustMessage) |
| TokenType |
Obtém ou define o conteúdo do elemento wst:TokenType. (Herdado de WSTrustMessage) |
| UseKey |
Obtém ou define o conteúdo do elemento wst:UseKey. (Herdado de WSTrustMessage) |
| ValidateTarget |
Recebe ou define o token para validação num pedido de validação WS-Trust. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |