SessionSecurityTokenHandler Classe

Définition

SecurityTokenHandler qui traite des jetons de sécurité de type SessionSecurityToken.

public ref class SessionSecurityTokenHandler : System::IdentityModel::Tokens::SecurityTokenHandler
public class SessionSecurityTokenHandler : System.IdentityModel.Tokens.SecurityTokenHandler
type SessionSecurityTokenHandler = class
    inherit SecurityTokenHandler
Public Class SessionSecurityTokenHandler
Inherits SecurityTokenHandler
Héritage
SessionSecurityTokenHandler
Dérivé

Exemples

Le code XML suivant montre comment remplacer le gestionnaire de jetons de sécurité de session par défaut dans une collection de gestionnaires de jetons par un instance de la classe dans la MachineKeySessionSecurityTokenHandler configuration.

<securityTokenHandlers>
  <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>

Remarques

La SessionSecurityTokenHandler classe sérialise, désérialise et valide les jetons de session. Les jetons de session sont des jetons de type SessionSecurityToken. La SessionSecurityTokenHandler classe sérialise les jetons vers et depuis le format de cookie. Par défaut, la classe sérialise les jetons en éléments WS-Secure Conversation Feb2005 ou WS-Secure Conversation 1.3 <wsc:SecurityContextToken> . Les jetons de session sont utilisés par le WSFederationAuthenticationModule (WSFAM) et le SessionAuthenticationModule (SAM) pour stocker des informations sur une session. Il s’agit principalement de l’associé ClaimsPrincipal à l’utilisateur authentifié, ainsi qu’aux heures de début et d’expiration de la session.

Dans les scénarios passifs, les WSFederationAuthenticationModule appels dans le SessionAuthenticationModule (SAM) à partir du pipeline d’authentification pour créer un jeton de session à partir du ClaimsPrincipal qui représente l’utilisateur authentifié. Le SAM utilise son configuré SessionSecurityTokenHandler pour créer le jeton et le sérialiser en cookie (et pour désérialiser le jeton à partir d’un cookie lors des demandes suivantes). Sam utilise un instance de sa classe configurée CookieHandler pour réécrire le cookie dans la réponse HTTP. Ce cookie est ensuite retourné au client et, sur les demandes suivantes, le client peut présenter le cookie au lieu d’effectuer un aller-retour vers le fournisseur d’identité pour obtenir à nouveau un jeton de sécurité. Pour plus d’informations sur le fonctionnement des sessions avec WIF, consultez Gestion des sessions WIF.

Notes

L’élément <de configuration securityTokenHandlers> peut être utilisé pour spécifier un SessionSecurityTokenHandler qui a la responsabilité de sécuriser les sessions de l’application. Les développeurs doivent être prudents lors de la modification de ce paramètre de configuration, car un système mal configuré peut entraîner une compromission de l’application. Par exemple, la spécification d’une dérivée SessionSecurityTokenHandler et le passage d’une collection Transforms (CookieTransform) vide à la base entraîne la sérialisation de l’identité des utilisateurs dans un cookie qui n’a pas été protégé. Cela peut permettre à un attaquant de modifier l’identité et donc de modifier les privilèges d’accès.

Si le jeton de session est en mode référence, c’est-à-dire que sa SessionSecurityToken.IsReferenceMode propriété est true, le gestionnaire de jetons de session sérialise uniquement les propriétés du jeton de session qui sont nécessaires pour régénérer sa clé dans le SessionSecurityTokenCache. Dans le cas par défaut, la SessionSecurityTokenCacheKey classe est utilisée pour représenter les clés de cache, et le gestionnaire de jetons écrit les SessionSecurityToken.ContextId propriétés et SessionSecurityToken.KeyGeneration du jeton. Si le jeton de session n’est pas en mode référence, c’est-à-dire que la SessionSecurityToken.IsReferenceMode propriété est false, alors, en plus des propriétés mentionnées précédemment, le gestionnaire appelle la ApplyTransforms méthode sur un tableau d’octets sérialisé à partir du jeton et stocke également la valeur résultante dans le cookie. Pour plus d’informations sur la façon dont le jeton est sérialisé, consultez la SessionSecurityTokenHandler.WriteToken(XmlWriter, SecurityToken) méthode .

La Transforms propriété obtient la liste des transformations appliquées au jeton de session dans la ApplyTransforms méthode . Toutes les transformations dérivent de la CookieTransform classe . Dans le cas par défaut, les DeflateCookieTransform et ProtectedDataCookieTransform sont appliqués. le ProtectedDataCookieTransform utilise l’API de protection des données (DPAPI) pour protéger le matériel de cookie. DPAPI utilise une clé spécifique à l’ordinateur sur lequel elle s’exécute dans ses algorithmes de protection. Pour cette raison, le gestionnaire de jetons de session par défaut n’est pas utilisable dans les scénarios de batterie de serveurs Web, car, dans ces scénarios, les jetons écrits sur un ordinateur peuvent avoir besoin d’être lus sur un autre ordinateur. Vous pouvez utiliser de nombreuses stratégies pour contourner ce problème. Par exemple, vous pouvez :

Pour plus d’informations sur l’utilisation de sessions dans les scénarios de batterie de serveurs Web, consultez WIF et Batteries de serveurs web.

Est SessionSecurityTokenHandler inclus dans la collection de gestionnaires de jetons par défaut. Toutefois, vous pouvez le remplacer par un gestionnaire de jetons de session personnalisé en spécifiant d’abord un <élément remove> sous l’élément <securityTokenHandlers> pour supprimer le gestionnaire par défaut de la collection, puis en ajoutant votre gestionnaire de jetons personnalisé à l’aide de l’élément <add> . Par défaut, vous pouvez spécifier la durée de vie du jeton par défaut en incluant l’élément <sessionTokenRequirement> sous l’élément <add> . Vous pouvez concevoir un gestionnaire de jetons personnalisé pour prendre des éléments de configuration personnalisés sous l’élément <add> en remplaçant la LoadCustomConfiguration méthode pour fournir la logique permettant de les traiter.

Constructeurs

SessionSecurityTokenHandler()

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies et la durée de vie de jeton par défaut.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>)

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies spécifiées.

SessionSecurityTokenHandler(ReadOnlyCollection<CookieTransform>, TimeSpan)

Initialise une nouvelle instance de la classe SessionSecurityTokenHandler qui utilise les transformations de cookies et la durée de vie de jeton spécifiées.

Champs

DefaultCookieTransforms

Collection en lecture seule qui contient la liste des transformations par défaut à appliquer aux cookies, à DeflateCookieTransform et à ProtectedDataCookieTransform.

DefaultLifetime

Constante qui spécifie la durée de vie par défaut des cookies, soit dix heures.

Propriétés

CanValidateToken

Obtient une valeur qui indique si ce gestionnaire prend en charge la validation des jetons du type SessionSecurityToken.

CanWriteToken

Obtient une valeur qui indique si ce gestionnaire peut écrire les jetons de type SessionSecurityToken.

Configuration

Obtient ou définit l'objet SecurityTokenHandlerConfiguration qui fournit la configuration pour l'instance actuelle.

(Hérité de SecurityTokenHandler)
ContainingCollection

Obtient la collection de gestionnaires de jetons qui contient l'instance actuelle.

(Hérité de SecurityTokenHandler)
CookieElementName

Obtient le nom de l'élément de cookie.

CookieNamespace

Obtient l'espace de noms pour l'élément de cookie.

DefaultTokenLifetime

Obtient la durée de vie du jeton par défaut.

TokenLifetime

Obtient ou définit la durée de vie du jeton.

TokenType

Obtient le type de jetons traités par ce gestionnaire.

Transforms

Obtient les transformations qui seront appliquées au cookie.

Méthodes

ApplyTransforms(Byte[], Boolean)

Applique les transformations spécifiées par la propriété Transforms pour encoder ou décoder le cookie spécifié.

CanReadKeyIdentifierClause(XmlReader)

Retourne une valeur qui indique si l'élément XML dont il est fait référence par le lecteur XML spécifié est une clause de l'identificateur de clé qui peut être désérialisée par cette instance.

(Hérité de SecurityTokenHandler)
CanReadToken(String)

Retourne une valeur qui indique si la chaîne spécifiée peut être désérialisée comme un jeton du type traité par cette instance.

(Hérité de SecurityTokenHandler)
CanReadToken(XmlReader)

Retourne une valeur qui indique si le lecteur est positionné sur un élément <wsc:SecurityContextToken> .

CanWriteKeyIdentifierClause(SecurityKeyIdentifierClause)

Retourne une valeur qui indique si la clause d'identificateur de clé spécifiée peut être sérialisée par cette instance.

(Hérité de SecurityTokenHandler)
CreateSecurityTokenReference(SecurityToken, Boolean)

En cas de substitution dans une classe dérivée, crée la référence de jeton de sécurité pour les jetons traités par cette classe. Cette méthode est généralement appelée par un service d'émission de jeton de sécurité (STS).

(Hérité de SecurityTokenHandler)
CreateSessionSecurityToken(ClaimsPrincipal, String, String, DateTime, DateTime)

Crée un SessionSecurityToken en fonction du principal des revendications spécifié et de la plage horaire pendant laquelle le jeton est valide.

CreateToken(SecurityTokenDescriptor)

Crée un jeton de sécurité en fonction du descripteur de jetons spécifié.

DetectReplayedToken(SecurityToken)

En cas de substitution dans une classe dérivée, lève une exception si le jeton spécifié est identifié comme étant relu.

(Hérité de SecurityTokenHandler)
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)
GetTokenTypeIdentifiers()

Obtient les URI d'identificateur de type de jeton pour les types de jetons qui peuvent être gérés par ce gestionnaire.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
LoadCustomConfiguration(XmlNodeList)

Charge la configuration personnalisée à partir du XML.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ReadKeyIdentifierClause(XmlReader)

En cas de substitution dans une classe dérivée, désérialise le XML référencé par le lecteur XML spécifié en clause d'identificateur de clé qui référence un jeton traité par la classe dérivée.

(Hérité de SecurityTokenHandler)
ReadToken(Byte[], SecurityTokenResolver)

Lit le SessionSecurityToken d'un flux d'octets à l'aide du programme de résolution de jetons spécifié.

ReadToken(String)

En cas de substitution dans une classe dérivée, désérialise la chaîne spécifiée en un jeton du type traité par cette classe dérivée.

(Hérité de SecurityTokenHandler)
ReadToken(XmlReader)

Lit le SessionSecurityToken à l'aide du lecteur XML spécifié.

ReadToken(XmlReader, SecurityTokenResolver)

Lit le SessionSecurityToken à l'aide du lecteur XML et du programme de résolution de jeton spécifiés.

SetTransforms(IEnumerable<CookieTransform>)

Définit les transformations qui seront appliquées aux cookies.

ToString()

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

(Hérité de Object)
TraceTokenValidationFailure(SecurityToken, String)

Effectue le traçage de l'événement d'échec lors de la validation des jetons de sécurité lorsque le traçage est activé.

(Hérité de SecurityTokenHandler)
TraceTokenValidationSuccess(SecurityToken)

Effectue le traçage de la validation réussie de l'événement de jetons de sécurité lorsque le traçage est activé.

(Hérité de SecurityTokenHandler)
ValidateSession(SessionSecurityToken)

Détermine si la session associée au jeton spécifié est toujours valide. La validité est déterminée en vérifiant les propriétés ValidFrom et ValidTo du jeton spécifié. Exception levée si la session n'est plus valide.

ValidateToken(SecurityToken)

Valide le jeton spécifié et retourne ses revendications.

ValidateToken(SessionSecurityToken, String)

Valide le jeton de session spécifié et retourne ses revendications.

WriteKeyIdentifierClause(XmlWriter, SecurityKeyIdentifierClause)

En cas de substitution dans une classe dérivée, sérialise la clause d'identificateur de clé spécifiée au format XML. La clause de l'identificateur de clé doit être du type pris en charge par la classe dérivée.

(Hérité de SecurityTokenHandler)
WriteToken(SecurityToken)

En cas de substitution dans une classe dérivée, sérialise le jeton de sécurité spécifié en chaîne. Le jeton doit être du type traité par la classe dérivée.

(Hérité de SecurityTokenHandler)
WriteToken(SessionSecurityToken)

Sérialise le jeton spécifié dans un tableau d'octets.

WriteToken(XmlWriter, SecurityToken)

Sérialise le jeton spécifié à l'aide du writer XML spécifié.

S’applique à

Voir aussi