RequestSecurityToken Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta l'elemento wst:RequestSecurityToken (RST), usato 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à
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 del 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 SecurityTokenService.GetScope metodo . 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à nella 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 dei parametri presenti nella richiesta specifica rappresentata, 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: WS-Trust febbraio 2005, WS-Trust 1.3 o WS-Trust 1.4.
Costruttori
| Nome | Descrizione |
|---|---|
| RequestSecurityToken() |
Inizializza una nuova istanza della classe RequestSecurityToken. |
| RequestSecurityToken(String, String) |
Inizializza una nuova istanza della RequestSecurityToken classe con il tipo di richiesta specificato. |
| RequestSecurityToken(String) |
Inizializza una nuova istanza della RequestSecurityToken classe con il tipo di richiesta specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| ActAs |
Ottiene o imposta il token di sicurezza per l'identità che il richiedente sta tentando di agire come. |
| 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 dell'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 vengono usate chiavi calcolate per i token emessi. |
| Context |
Ottiene o imposta il contenuto dell'attributo Context in RST o 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 deve essere delegato il token rilasciato. |
| Encryption |
Ottiene o imposta informazioni sul token e sulla chiave da usare durante la crittografia. |
| EncryptionAlgorithm |
Ottiene o imposta il contenuto dell'elemento wst:EncryptionAlgorithm. (Ereditato da WSTrustMessage) |
| EncryptWith |
Ottiene o imposta il contenuto dell'elemento wst:EncryptWith. (Ereditato da WSTrustMessage) |
| Entropy |
Ottiene o imposta il contenuto dell'elemento wst:Entropy. (Ereditato da WSTrustMessage) |
| Forwardable |
Ottiene o imposta un valore che specifica se il token rilasciato deve essere contrassegnato come forwardable. |
| Issuer |
Ottiene o imposta l'autorità di certificazione del token wst:OnBehalfOf. |
| KeySizeInBits |
Ottiene o imposta il contenuto dell'elemento wst:KeySize all'interno di un messaggio RequestSecurityToken (RST). (Ereditato da WSTrustMessage) |
| KeyType |
Ottiene o imposta il contenuto dell'elemento wst:KeyType all'interno di un messaggio RequestSecurityToken (RST). (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 all'interno di un messaggio RequestSecurityToken (RST). (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 usare 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 di rinnovo 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 rispondere alla 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 è l'originatore. |
| SignatureAlgorithm |
Ottiene o imposta il contenuto dell'elemento wst:SignatureAlgorithm. (Ereditato da WSTrustMessage) |
| SignWith |
Ottiene o imposta il contenuto dell'elemento wst:SignWith. (Ereditato da WSTrustMessage) |
| TokenType |
Ottiene o imposta il contenuto dell'elemento wst:TokenType. (Ereditato da WSTrustMessage) |
| UseKey |
Ottiene o imposta il contenuto dell'elemento wst:UseKey. (Ereditato da WSTrustMessage) |
| ValidateTarget |
Ottiene o imposta il token da convalidare in una richiesta di convalida WS-Trust. |
Metodi
| Nome | Descrizione |
|---|---|
| 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 il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |