RequestSecurityToken Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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) |