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 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
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) |