RequestSecurityToken Classe

Definição

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
RequestSecurityToken

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)

Aplica-se a

Ver também