Chapitre 5. PicketLink Identity Management
5.1. Security Token Service (STS) Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Le service de jetons de sécurité (STS) génère et gère des jetons de sécurité. Il ne crée pas de jetons de type particulier. À la place, il définit des interfaces génériques qui autorisent l'ajout de multiples fournisseurs de jetons. De ce fait, il peut être configuré pour gérer plusieurs types de jetons, dans la mesure où un fournisseur de jetons existe pour chaque type de token. Il spécifie également le format de la requête de jeton de sécurité et les messages réponse.
Un message STS indique :
- Type de requête, Issue, Renew, etc.
- Type de jeton
- Durée de vie du jeton donné
- Informations sur le fournisseur de services qui a demandé le jeton
- Informations utilisées pour crypter le jeton créé.
Le message de demande de jeton est envoyé dans le corps du message SOAP. Toutes les informations liées à la demande de jeton sont contenues dans l'élément
RequestSecurityToken. L'exemple de requête contient deux autres éléments WS-Trust : RequestType qui précise que cette requête est une requête d'émission et TokenType qui spécifie le type du jeton qui sera attribuée.
Voici un exemple de message de requête WS-Trust.
Exemple 5.1. Message de requête de jeton de sécurité WS-Trust
Voici un exemple de réponse de jeton de sécurité.
Exemple 5.2. Message de réponse de jeton de sécurité
Dans l'exemple de réponse de jeton de sécurité, l'élément
TokenType spécifie le type du jeton émis, alors que l'élément RequestedSecurityToken contient le jeton lui-même. Le format du jeton dépend du type du jeton. L'élément de Lifetime spécifie quand le jeton a été créé et quand il expire.
Traitement de la requête de jeton de sécurité
Voici les étapes de traitement d'une requête de jeton de sécurité :
- Un client envoie une requête de jeton de sécurité à
PicketLinkSTS.
PicketLinkSTSanalyse le message de requête, et génère un modèle d'objet JAXB.
PicketLinkSTSlit le fichier de configuration et crée l'objetSTSConfiguration, si nécessaire. Ensuite, il obtient une référence auWSTrustRequestHandlerde la configuration et délègue le traitement de la requête à l'instance du gestionnaire de la demande.
- Le gestionnaire de requêtes utilise
STSConfigurationpour définir les valeurs par défaut si nécessaire (par exemple, lorsque la demande ne spécifie pas une valeur de durée de vie de jeton)
- Le
WSTrustRequestHandlercrée unWSTrustRequestContext, définissant l'objet de la requêteJAXBet le principal de l'appelant reçu dePicketLinkSTS.
- Le
WSTrustRequestHandlerutilise laSTSConfigurationpour obtenir leSecurityTokenProviderqui doit être utilisé pour traiter la requête selon le type du jeton qui est demandé. Ensuite, il appelle le fournisseur, en passant leWSTrustRequestContexten tant que paramètre.
- L'instance
SecurityTokenProvidertraite la demande de jeton et stocke le jeton à produire dans le contexte de demande.
- Le
WSTrustRequestHandlerobtient le jeton du contexte, le crypte si nécessaire, et construit l'objet de réponse WS-Trust contenu dans le jeton de sécurité.
PicketLinkSTSdicte la réponse générée par le gestionnaire de requêtes et la renvoie au client.