RequestSecurityToken Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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) |