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), 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à
Esempio
L'esempio di codice usato in questo argomento viene 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 stS passivo in grado di gestire un token SWT. Il servizio di sicurezza del servizio di sicurezza viene implementato da una classe derivata da SecurityTokenService. Molti dei metodi della classe chiamati dalla pipeline di SecurityTokenService 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 metodo SecurityTokenService.GetScope. Il metodo accetta RequestSecurityToken come uno dei relativi parametri e proprietà di questo parametro vengono usati 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 (messaggio) contiene i parametri e le proprietà usati per richiedere un token di sicurezza da un servizio token di sicurezza (STS). Il messaggio (o elemento) è abbreviato come RST. La RequestSecurityToken classe contiene proprietà che rappresentano gli elementi della RST. Un RST può formare una richiesta che corrisponde a una qualsiasi delle associazioni di richieste definite da WS-Trust; Ad esempio, l'associazione Di 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 di un particolare RequestSecurityToken oggetto rappresenta o i parametri presenti nella richiesta specifica che rappresenta, alcune proprietà dell'oggetto possono essere null
.
Il servizio 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) |