Appel du noeud final de jeton pour OpenID Connect

Dans le Flux de code d'autorisation OpenID Connect, le noeud final de jeton est utilisé par un client pour obtenir un jeton d'ID, un jeton d'accès et un jeton d'actualisation.

Avant de commencer

Lors du démarrage du noeud final de jeton depuis une application client interne à un navigateur ou un application client implémentée dans un langage de script tel que Javascript, par exemple, aucune configuration de serveur Liberty en tant que client OpenID Connect n'est nécessaire.

Pourquoi et quand exécuter cette tâche

Le noeud final de jeton accepte une demande du client qui inclut un code d'autorisation émis pour le client par le noeud final de jeton. Lorsque le code d'autorisation est validé, les jetons appropriés sont renvoyés dans une réponse au client.

Le noeud final de jeton n'est pas utilisé dans le flux implicite OpenID Connect.

Un serveur Liberty avec OpenID Connect activé peut accéder au noeud final de jeton OpenID Connect à l'URL suivante :

 https://server.example.com:443/oidc/endpoint/<provider_name>/token
Remarque : Dans cet exemple le port SSL du fournisseur OpenID Connect doit être 443. Toutes les communications avec le noeud final de jeton doivent utiliser le protocole TLS.

Procédure

  1. Préparez une demande HTTP POST avec les paramètres ci-après.
    • grant_type : la valeur de ce paramètre doit être authorization_code.
    • code : Code d'autorisation reçu du noeud final d'autorisation.

    Les paramètres doivent être ajoutés au format application/x-www-form-urlencoded.

  2. Envoyez la demande POST à l'URL du noeud final de jeton.

Résultats

Une fois ces étapes effectuées, vous disposez d'une demande HTTP valide qui peut être envoyée au noeud final de jeton. Ce dernier renvoie une réponse de la manière décrite dans la section Exemples.

Lorsque le fournisseur OpenID Connect valide la demande de jeton qui est reçue du * client, il renvoie une réponse HTTP 200 au client avec un objet JSON au format application/json. La réponse inclut le jeton d'ID, le jeton d'accès et le jeton d'actualisation, , ainsi que les paramètres supplémentaires suivants :

  • token_type : Type de jeton OAuth 2.0. Pour OpenID Connect, cette valeur est Bearer.
  • expires_in : délai d'expiration en secondes du jeton d'accès depuis que la réponse a été générée.

Pour toutes les réponses du noeud final de jeton contenant des jetons, des valeurs secrètes ou d'autres informations sensibles, la valeur d'en-tête Cache-Control est définie sur no-store et la valeur d'en-tête Pragma est définie sur no-cache.

.

Exemple

Les exemples ci-après illustrent des demande et des réponses HTTP POST

Voici un exemple de demande :

 POST /token HTTP/1.1
 Content-Type: application/x-www-form-urlencoded
 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
     grant_type=authorization_code
     &code=SplxlOBeZQQYbYS6WxSbIA 		
     &redirect_uri=https%3A%2F%2Fclient.example.org%2Fcb

An example response is shown here:

 HTTP/1.1 200 OK
 Content-Type: application/json
 Cache-Control: no-store
 Pragma: no-cache
 {
     "access_token": "SlAV32hkKG",
     "token_type": "Bearer",
     "refresh_token": "8xLOxBtZp8",
     "expires_in": 3600,
     "id_token": "eyJ ... zcifQ.ewo ... NzAKfQ.ggW8h ... Mzqg"
 }

Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_oidc_token_endpoint.html