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
Eviter les incidents : Si vous utilisez un proxy sortant, notez que le fournisseur de ressource OpenID Connect ne fournit aucun moyen d'acheminer automatiquement des demandes via un hôte proxy.

Si vous devez utiliser un proxy pour accéder au fournisseur OpenID Connect, la valeur que vous entrez pour n'importe quelle propriété d'URL liée à un fournisseur OpenID Connect doit contenir l'hôte et le port de proxy et non l'hôte et le port de fournisseur OpenID Connect externe.

Dans la plupart des cas, vous pouvez remplacer l'hôte et le port de fournisseur OpenID Connect par l'hôte et le port de proxy. L'URL que vous entrez doit être visible à la fois pour le fournisseur et le client (navigateur ou application). Pour obtenir d'autres conseils sur la méthode permettant de déterminer l'URL à utiliser, contactez votre administrateur de proxy.

Dans cet exemple, le client suppose que le port SSL est défini sur 443.

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