Partager via


RequestSecurityToken Classe

Définition

Représente l'élément wst:RequestSecurityToken (RST), qui est utilisé pour demander un jeton de sécurité.

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
Héritage
RequestSecurityToken

Exemples

L’exemple de code utilisé dans cette rubrique est extrait de l’exemple Custom Token . Cet exemple fournit des classes personnalisées qui permettent le traitement des jetons web simples (SWT) et inclut une implémentation d’un STS passif capable de servir un jeton SWT. Le STS est implémenté par une classe dérivée de SecurityTokenService. La plupart des méthodes de la SecurityTokenService classe appelées à partir de son pipeline d’émission de jetons prennent un RequestSecurityToken objet en tant que si leurs paramètres. Pour plus d’informations sur cet exemple et d’autres exemples disponibles pour WIF et sur l’emplacement où les télécharger, consultez Index d’exemple de code WIF.

L'exemple de code suivant illustre une implémentation de la méthode SecurityTokenService.GetScope. La méthode prend un comme l’un RequestSecurityToken de ses paramètres et les propriétés de ce paramètre sont utilisées pour définir des propriétés sur l’objet Scope retourné par la méthode.

// 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));
    }
}

Remarques

L’élément wst :RequestSecurityToken (message) contient les paramètres et les propriétés utilisés pour demander un jeton de sécurité à un service de jeton de sécurité (STS). Le message (ou l’élément) est abrégé en RST. La RequestSecurityToken classe contient des propriétés qui représentent les éléments du RST. Une TSR peut former une requête qui correspond à l’une des liaisons de requête définies par WS-Trust ; par exemple, la liaison d’émission, la liaison de renouvellement, la liaison Valider ou annuler la liaison. La plupart des propriétés de la RequestSecurityToken classe correspondent à des éléments qui ne sont présents que dans des types spécifiques de requêtes tels que définis par ces liaisons. Selon le type de requête qu’un objet particulier RequestSecurityToken représente ou les paramètres présents dans la demande spécifique qu’il représente, certaines propriétés de l’objet peuvent être null.

Le STS retourne une réponse à la requête dans un message qui contient un élément wst :RequestSecurityTokenResponse (RSTR). Ce message est représenté par la RequestSecurityTokenResponse classe .

Pour plus d’informations sur l’élément représenté par cette classe, consultez la spécification WS-Trust qui s’applique à votre scénario : WS-Trust February 2005, WS-Trust 1.3 ou WS-Trust 1.4.

Constructeurs

RequestSecurityToken()

Initialise une nouvelle instance de la classe RequestSecurityToken.

RequestSecurityToken(String)

Initialise une nouvelle instance de la classe RequestSecurityToken avec le type de requête spécifié.

RequestSecurityToken(String, String)

Initialise une nouvelle instance de la classe RequestSecurityToken avec le type de requête spécifié.

Propriétés

ActAs

Obtient ou définit le jeton de sécurité pour l'identité avec laquelle le demandeur tente d'agir.

AdditionalContext

Obtient ou définit les informations de contexte supplémentaires pour la demande.

AllowPostdating

Obtient ou définit le contenu de l'élément wst:AllowPostdating.

(Hérité de WSTrustMessage)
AppliesTo

Obtient ou définit le contenu de l'élément wsp:AppliesTo.

(Hérité de WSTrustMessage)
AuthenticationType

Obtient ou définit le contenu de l'élément wst:AuthenticationType.

(Hérité de WSTrustMessage)
BinaryExchange

Obtient ou définit le contenu de l'élément wst:BinaryExchange.

(Hérité de WSTrustMessage)
CancelTarget

Obtient ou définit le jeton à annuler dans une demande d'annulation WS-Trust.

CanonicalizationAlgorithm

Obtient ou définit le contenu de l'élément wst:CanonicalizationAlgorithm.

(Hérité de WSTrustMessage)
Claims

Obtient les types de revendication demandés par le client (demandeur).

ComputedKeyAlgorithm

Obtient un URI qui représente l'algorithme souhaité à utiliser lorsque des clés calculées sont utilisées pour les jetons émis.

Context

Obtient ou définit le contenu de l'attribut Context dans le RST ou le RSTR.

(Hérité de WSTrustMessage)
Delegatable

Obtient ou définit une valeur qui spécifie si le jeton émis est marqué comme pouvant être délégué.

DelegateTo

Obtient ou définit l'identité à laquelle le jeton émis doit être délégué.

Encryption

Obtient ou définit les informations relatives au jeton et à la clé à utiliser lors du chiffrement.

EncryptionAlgorithm

Obtient ou définit le contenu de l'élément wst:EncryptionAlgorithm.

(Hérité de WSTrustMessage)
EncryptWith

Obtient ou définit le contenu de l'élément wst:EncryptWith.

(Hérité de WSTrustMessage)
Entropy

Obtient ou définit le contenu de l'élément wst:Entropy.

(Hérité de WSTrustMessage)
Forwardable

Obtient ou définit une valeur qui spécifie si le jeton émis est marqué comme pouvant être transféré.

Issuer

Obtient ou définit l'émetteur du jeton wst:OnBehalfOf.

KeySizeInBits

Obtient ou définit le contenu de l'élément wst:KeySize au sein d'un message RequestSecurityToken (RST).

(Hérité de WSTrustMessage)
KeyType

Obtient ou définit le contenu de l'élément wst:KeyType au sein d'un message RequestSecurityToken (RST).

(Hérité de WSTrustMessage)
KeyWrapAlgorithm

Obtient ou définit le contenu de l'élément wst:KeyWrapAlgorithm.

(Hérité de WSTrustMessage)
Lifetime

Obtient ou définit le contenu de l'élément wst:Lifetime au sein d'un message RequestSecurityToken (RST).

(Hérité de WSTrustMessage)
OnBehalfOf

Obtient ou définit le jeton de l'identité pour laquelle la demande est faite.

Participants

Obtient ou définit les participants qui sont autorisés à utiliser le jeton émis.

ProofEncryption

Obtient ou définit le jeton à utiliser pour chiffrer le jeton de preuve.

Properties

Obtient le conteneur de propriétés utilisé pour étendre l'objet.

(Hérité de OpenObject)
Renewing

Obtient ou définit la sémantique de renouvellement pour une demande de renouvellement WS-Trust.

RenewTarget

Obtient ou définit le jeton à renouveler dans une demande de renouvellement WS-Trust.

ReplyTo

Obtient ou définit l'adresse à utiliser pour répondre à la partie de confiance.

(Hérité de WSTrustMessage)
RequestType

Obtient ou définit l'élément wst:RequestType.

(Hérité de WSTrustMessage)
SecondaryParameters

Obtient ou définit les paramètres dont le demandeur n'est pas le créateur.

SignatureAlgorithm

Obtient ou définit le contenu de l'élément wst:SignatureAlgorithm.

(Hérité de WSTrustMessage)
SignWith

Obtient ou définit le contenu de l'élément wst:SignWith.

(Hérité de WSTrustMessage)
TokenType

Obtient ou définit le contenu de l'élément wst:TokenType.

(Hérité de WSTrustMessage)
UseKey

Obtient ou définit le contenu de l'élément wst:UseKey.

(Hérité de WSTrustMessage)
ValidateTarget

Obtient ou définit le jeton à valider dans une demande de validation WS-Trust.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi