RequestSecurityToken Clase

Definición

Representa el elemento wst:RequestSecurityToken (RST), que se utiliza para solicitar un token de seguridad.

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
Herencia
RequestSecurityToken

Ejemplos

El ejemplo de código que se usa en este tema se toma del Custom Token ejemplo. En este ejemplo se proporcionan clases personalizadas que permiten el procesamiento de tokens web simples (SWT) e incluye una implementación de un STS pasivo que es capaz de atender un token SWT. El STS se implementa mediante una clase derivada de SecurityTokenService. Muchos de los métodos de la clase a los SecurityTokenService que se llama desde su canalización de emisión de tokens toman un RequestSecurityToken objeto como uno si sus parámetros. Para obtener información sobre este ejemplo y otros ejemplos disponibles para WIF y sobre dónde descargarlos, consulte Índice de ejemplo de código wiF.

En el siguiente ejemplo de código se muestra la implementación del método SecurityTokenService.GetScope. El método toma RequestSecurityToken como uno de sus parámetros y propiedades de este parámetro se usan para establecer propiedades en el Scope objeto devuelto por el 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));
    }
}

Comentarios

El elemento wst:RequestSecurityToken (mensaje) contiene los parámetros y propiedades usados para solicitar un token de seguridad de un servicio de token de seguridad (STS). El mensaje (o elemento) se abrevia como RST. La RequestSecurityToken clase contiene propiedades que representan los elementos del RST. Un RST puede formar una solicitud que corresponda a cualquiera de los enlaces de solicitud definidos por WS-Trust; por ejemplo, el enlace emisión, el enlace Renovación, el enlace Validar o el enlace Cancelar. Muchas de las propiedades de la RequestSecurityToken clase corresponden a elementos que solo están presentes en tipos específicos de solicitudes según lo definido por estos enlaces. Según el tipo de solicitud de un objeto determinado RequestSecurityToken representa o los parámetros presentes en la solicitud específica que representa, algunas propiedades del objeto pueden ser null.

El STS devuelve una respuesta a la solicitud en un mensaje que contiene un elemento wst:RequestSecurityTokenResponse (RSTR). Este mensaje se representa mediante la RequestSecurityTokenResponse clase .

Para obtener más información sobre el elemento que esta clase representa, vea la especificación WS-Trust correspondiente al escenario: WS-Trust February 2005 (WS-Trust, febrero de 2005), WS-Trust 1.3 o WS-Trust 1.4.

Constructores

RequestSecurityToken()

Inicializa una nueva instancia de la clase RequestSecurityToken.

RequestSecurityToken(String)

Inicializa una nueva instancia de la clase RequestSecurityToken con el tipo de solicitud especificado.

RequestSecurityToken(String, String)

Inicializa una nueva instancia de la clase RequestSecurityToken con el tipo de solicitud especificado.

Propiedades

ActAs

Obtiene o establece el token de seguridad para la identidad con la que el solicitante está intentando actuar.

AdditionalContext

Obtiene o establece la información de contexto adicional para la solicitud.

AllowPostdating

Obtiene o establece el contenido del elemento wst:AllowPostdating.

(Heredado de WSTrustMessage)
AppliesTo

Obtiene o establece el contenido del elemento wsp:AppliesTo.

(Heredado de WSTrustMessage)
AuthenticationType

Obtiene o establece el contenido del elemento wst:AuthenticationType.

(Heredado de WSTrustMessage)
BinaryExchange

Obtiene o establece el contenido del elemento wst:BinaryExchange.

(Heredado de WSTrustMessage)
CancelTarget

Obtiene o establece el token que se cancela en una solicitud de cancelación de WS-Trust.

CanonicalizationAlgorithm

Obtiene o establece el contenido del elemento wst:CanonicalizationAlgorithm.

(Heredado de WSTrustMessage)
Claims

Obtiene los tipos de notificación solicitados por el cliente (solicitante).

ComputedKeyAlgorithm

Obtiene un URI que representa el algoritmo deseado que se va a utilizar cuando las claves calculadas se usen para los tokens emitidos.

Context

Obtiene o establece el contenido del atributo Context en el RST o el RSTR.

(Heredado de WSTrustMessage)
Delegatable

Obtiene o establece un valor que especifica si el token emitido se debe marcar como delegable.

DelegateTo

Obtiene o establece la identidad en la que debe delegarse el token emitido.

Encryption

Obtiene o establece la información sobre el token y la clave que se van a utilizar al cifrar.

EncryptionAlgorithm

Obtiene o establece el contenido del elemento wst:EncryptionAlgorithm.

(Heredado de WSTrustMessage)
EncryptWith

Obtiene o establece el contenido del elemento wst:EncryptWith.

(Heredado de WSTrustMessage)
Entropy

Obtiene o establece el contenido del elemento wst:Entropy.

(Heredado de WSTrustMessage)
Forwardable

Obtiene o establece un valor que especifica si el token emitido se debe marcar como reenviable.

Issuer

Obtiene o establece el emisor del token wst:OnBehalfOf.

KeySizeInBits

Obtiene o establece el contenido del elemento wst:KeySize dentro de un mensaje de RequestSecurityToken (RST).

(Heredado de WSTrustMessage)
KeyType

Obtiene o establece el contenido del elemento wst:KeyType dentro de un mensaje de RequestSecurityToken (RST).

(Heredado de WSTrustMessage)
KeyWrapAlgorithm

Obtiene o establece el contenido del elemento wst:KeyWrapAlgorithm.

(Heredado de WSTrustMessage)
Lifetime

Obtiene o establece el contenido del elemento wst:Lifetime dentro de un mensaje de RequestSecurityToken (RST).

(Heredado de WSTrustMessage)
OnBehalfOf

Obtiene o establece el token para la identidad en nombre de la que se está realizando la solicitud.

Participants

Obtiene o establece los participantes que están autorizados a utilizar el token emitido.

ProofEncryption

Obtiene o establece el token que se usará para cifrar el token de prueba.

Properties

Obtiene el contenedor Propiedades para extender el objeto.

(Heredado de OpenObject)
Renewing

Obtiene o establece la semántica de renovación para una solicitud de renovación de WS-Trust.

RenewTarget

Obtiene o establece el token que se renueva en una solicitud de renovación de WS-Trust.

ReplyTo

Obtiene o establece la dirección que se utilizará para responder al usuario de confianza.

(Heredado de WSTrustMessage)
RequestType

Obtiene o establece el elemento wst:RequestType.

(Heredado de WSTrustMessage)
SecondaryParameters

Obtiene o establece los parámetros para los que el solicitante no es el originador.

SignatureAlgorithm

Obtiene o establece el contenido del elemento wst:SignatureAlgorithm.

(Heredado de WSTrustMessage)
SignWith

Obtiene o establece el contenido del elemento wst:SignWith.

(Heredado de WSTrustMessage)
TokenType

Obtiene o establece el contenido del elemento wst:TokenType.

(Heredado de WSTrustMessage)
UseKey

Obtiene o establece el contenido del elemento wst:UseKey.

(Heredado de WSTrustMessage)
ValidateTarget

Obtiene o establece el token que se valida en una solicitud de validación de WS-Trust.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también