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
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
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
Résultats
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
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"
}