RequestSecurityToken Clase

Definición

Representa el elemento wst:RequestSecurityToken (RST), que se usa 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. Este ejemplo proporciona 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 de WIF.

En el ejemplo de código siguiente se muestra una implementación del SecurityTokenService.GetScope método . 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, tal como se definen en estos enlaces. Dependiendo del tipo de solicitud que representa un objeto determinado RequestSecurityToken o de 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 representa esta clase, consulte la especificación de WS-Trust que se aplica a su escenario: WS-Trust febrero de 2005, WS-Trust 1.3 o WS-Trust 1.4.

Constructores

Nombre Description
RequestSecurityToken()

Inicializa una nueva instancia de la clase RequestSecurityToken.

RequestSecurityToken(String, String)

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

RequestSecurityToken(String)

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

Propiedades

Nombre Description
ActAs

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

AdditionalContext

Obtiene o establece la información de contexto adicional de 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 va a cancelar 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 usar cuando se usan claves calculadas para tokens emitidos.

Context

Obtiene o establece el contenido del atributo Context en el RST o 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 a la que se debe delegar el token emitido.

Encryption

Obtiene o establece información sobre el token y la clave que se van a usar 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 debe marcarse 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 RequestSecurityToken (RST).

(Heredado de WSTrustMessage)
KeyType

Obtiene o establece el contenido del elemento wst:KeyType dentro de un mensaje 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 RequestSecurityToken (RST).

(Heredado de WSTrustMessage)
OnBehalfOf

Obtiene o establece el token de la identidad en nombre de la que se realiza la solicitud.

Participants

Obtiene o establece los participantes que están autorizados para usar el token emitido.

ProofEncryption

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

Properties

Obtiene el contenedor de propiedades para extender el objeto .

(Heredado de OpenObject)
Renewing

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

RenewTarget

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

ReplyTo

Obtiene o establece la dirección que se va a usar para responder al usuario de confianza.

(Heredado de WSTrustMessage)
RequestType

Obtiene o establece el elemento wst:RequestType.

(Heredado de WSTrustMessage)
SecondaryParameters

Obtiene o establece 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 va a validar en una solicitud de validación de WS-Trust.

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa 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 Objectactual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también