RequestSecurityToken Classe

Definizione

Rappresenta l'elemento wst:RequestSecurityToken (RST), utilizzato per richiedere un token di sicurezza.

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
Ereditarietà
RequestSecurityToken

Esempio

L'esempio di codice usato in questo argomento è tratto dall'esempio Custom Token . Questo esempio fornisce classi personalizzate che consentono l'elaborazione di token Web semplici (SWT) e include un'implementazione di un servizio token di sicurezza passivo in grado di gestire un token SWT. Il servizio token di sicurezza viene implementato da una classe derivata da SecurityTokenService. Molti dei metodi della SecurityTokenService classe chiamati dalla pipeline di rilascio dei token accettano un RequestSecurityToken oggetto come uno se i relativi parametri. Per informazioni su questo esempio e altri esempi disponibili per WIF e su dove scaricarli, vedere Indice di esempio di codice WIF.

Nell'esempio di codice seguente viene illustrata un'implementazione del metodo SecurityTokenService.GetScope. Il metodo accetta come RequestSecurityToken uno dei relativi parametri e proprietà di questo parametro viene utilizzato per impostare le proprietà sull'oggetto Scope restituito dal metodo .

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

Commenti

L'elemento wst:RequestSecurityToken (message) contiene i parametri e le proprietà usati per richiedere un token di sicurezza da un servizio token di sicurezza.The wst:RequestSecurityToken element (message)contains the parameters and properties used to request a security token service (STS). Il messaggio (o elemento) è abbreviato come RST. La RequestSecurityToken classe contiene proprietà che rappresentano gli elementi dell'RST. Un RST può formare una richiesta che corrisponde a qualsiasi associazione di richiesta definita da WS-Trust; ad esempio l'associazione Rilascio, l'associazione Rinnovo, l'associazione Convalida o l'associazione Annulla. Molte delle proprietà della RequestSecurityToken classe corrispondono agli elementi presenti solo in tipi specifici di richieste, come definito da queste associazioni. A seconda del tipo di richiesta rappresentata da un particolare RequestSecurityToken oggetto o dai parametri presenti nella richiesta specifica che rappresenta, alcune proprietà dell'oggetto possono essere null.

Il servizio token di sicurezza restituisce una risposta alla richiesta in un messaggio contenente un elemento wst:RequestSecurityTokenResponse (RSTR). Questo messaggio è rappresentato dalla RequestSecurityTokenResponse classe .

Per altre informazioni sull'elemento rappresentato da questa classe, vedere la specifica WS-Trust applicabile allo scenario specifico: WS-Trust di febbraio 2005, WS-Trust 1.3 or WS-Trust 1.4.

Costruttori

RequestSecurityToken()

Inizializza una nuova istanza della classe RequestSecurityToken.

RequestSecurityToken(String)

Inizializza una nuova istanza della classe RequestSecurityToken con il tipo di richiesta specificato.

RequestSecurityToken(String, String)

Inizializza una nuova istanza della classe RequestSecurityToken con il tipo di richiesta specificato.

Proprietà

ActAs

Ottiene o imposta il token di sicurezza per l'identità che il richiedente sta tentando di assumere.

AdditionalContext

Ottiene o imposta le informazioni di contesto aggiuntive per la richiesta.

AllowPostdating

Ottiene o imposta il contenuto dell'elemento wst:AllowPostdating.

(Ereditato da WSTrustMessage)
AppliesTo

Ottiene o imposta il contenuto all'elemento wsp:AppliesTo.

(Ereditato da WSTrustMessage)
AuthenticationType

Ottiene o imposta il contenuto dell'elemento wst:AuthenticationType.

(Ereditato da WSTrustMessage)
BinaryExchange

Ottiene o imposta il contenuto dell'elemento wst:BinaryExchange.

(Ereditato da WSTrustMessage)
CancelTarget

Ottiene o imposta il token da annullare in una richiesta di annullamento WS-Trust.

CanonicalizationAlgorithm

Ottiene o imposta il contenuto dell'elemento wst:CanonicalizationAlgorithm.

(Ereditato da WSTrustMessage)
Claims

Ottiene i tipi di attestazione richiesti dal client (richiedente).

ComputedKeyAlgorithm

Ottiene un URI che rappresenta l'algoritmo desiderato da utilizzare quando le chiavi calcolate vengono utilizzate per i token rilasciati.

Context

Ottiene o imposta l'oggetto il contenuto dell'attributo sull'RST o l'RSTR.

(Ereditato da WSTrustMessage)
Delegatable

Ottiene o imposta un valore che specifica se il token rilasciato deve essere contrassegnato come delegabile.

DelegateTo

Ottiene o imposta l'identità a cui delegare il token rilasciato.

Encryption

Ottiene o imposta le informazioni sul token e sulla chiave da utilizzare durante la crittografia.

EncryptionAlgorithm

Ottiene o imposta il contenuto dell'elemento wst:EncryptionAlgorithm.

(Ereditato da WSTrustMessage)
EncryptWith

Ottiene o imposta il contenuto all'elemento wst:EncryptWith.

(Ereditato da WSTrustMessage)
Entropy

Ottiene o imposta il contenuto all'elemento wst:Entropy.

(Ereditato da WSTrustMessage)
Forwardable

Ottiene o imposta un valore che specifica se il token rilasciato deve essere contrassegnato come inoltrabile.

Issuer

Ottiene o imposta l'indirizzo dell'autorità emittente del token wst:OnBehalfOf.

KeySizeInBits

Ottiene o imposta il contenuto dell'elemento wst:KeySize in un messaggio RST (Request SecurityToken).

(Ereditato da WSTrustMessage)
KeyType

Ottiene o imposta il contenuto dell'elemento wst:KeyType in un messaggio RST (Request SecurityToken).

(Ereditato da WSTrustMessage)
KeyWrapAlgorithm

Ottiene o imposta il contenuto dell'elemento wst:KeyWrapAlgorithm.

(Ereditato da WSTrustMessage)
Lifetime

Ottiene o imposta il contenuto dell'elemento wst:Lifetime in un messaggio RST (Request SecurityToken).

(Ereditato da WSTrustMessage)
OnBehalfOf

Ottiene o imposta il token per l'identità per conto della quale viene effettuata la richiesta.

Participants

Ottiene o imposta i partecipanti autorizzati a utilizzare il token rilasciato.

ProofEncryption

Ottiene o imposta il token da utilizzare per crittografare il token di prova.

Properties

Ottiene il contenitore delle proprietà per estendere l'oggetto.

(Ereditato da OpenObject)
Renewing

Ottiene o imposta la semantica per una richiesta di rinnovo WS-Trust.

RenewTarget

Ottiene o imposta il token da rinnovare in una richiesta di rinnovo WS-Trust.

ReplyTo

Ottiene o imposta l'indirizzo da utilizzare per la risposta al relying party.

(Ereditato da WSTrustMessage)
RequestType

Ottiene o imposta l'elemento wst:RequestType.

(Ereditato da WSTrustMessage)
SecondaryParameters

Ottiene o imposta i parametri per i quali il richiedente non è il creatore.

SignatureAlgorithm

Ottiene o imposta il contenuto dell'elemento wst:SignatureAlgorithm.

(Ereditato da WSTrustMessage)
SignWith

Ottiene o imposta il contenuto all'elemento wst:SignWith.

(Ereditato da WSTrustMessage)
TokenType

Ottiene o imposta il contenuto all'elemento wst:TokenType.

(Ereditato da WSTrustMessage)
UseKey

Ottiene o imposta il contenuto all'elemento wst:UseKey.

(Ereditato da WSTrustMessage)
ValidateTarget

Ottiene o imposta il token da convalidare in una richiesta di convalida WS-Trust.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche