Je travaille avec l'adaptateur nodeJS keycloak et jusqu'à présent, mon application cliente redirige vers la connexion keycloak.
Lors de la tentative de connexion, j'obtiens une erreur dans les journaux de keycloak comme suit:
12: 07: 12,341 WARN [org.keycloak.events] (tâche par défaut-30) type = CODE_TO_TOKEN_ERROR, realmId = myrealm, clientId = client-test, userId = xxx, ipAddress = xxx.xxx.xxx.xx, error = invalid_code , grant_type = code_autorisation, code_id = xxx, client_auth_method = client-secret
Le message d'erreur renvoyé à mon application expresse se lit comme "Impossible d'obtenir le code d'autorisation".
Quelqu'un peut-il faire la lumière sur ce que cela signifie exactement? Je peux seulement penser que j'ai mal configuré quelque chose dans mes paramètres domaine\client\utilisateur.
Merci
J'ai trouvé la solution. Il semble que si vous suivez ce guide: https://www.ibm.com/developerworks/library/se-oauthjavapt3/index.html vous verrez que lorsque vous échangez le code d'accès pour l'accès token (/ realms/{realm-name}/protocol/openid-connect/token) vous devez ajouter le même redirect_uri
que vous avez utilisé lors de la demande du code d'accès. Ça marche pour moi maintenant.
J'espère que ça aide,
Adrian
L'URL de redirection doit être exactement similaire. J'utilisais l'URL de redirection suivante pour obtenir le code http://example.com/frontend/
. Et lors de l'obtention du jeton, j'utilisais l'URL suivante http://example.com/
L'utilisation de la même URL pour les deux appels a résolu le problème.
Cela signifie généralement que le code renvoyé à Keycloak afin d'échanger le code contre des jetons était invalide ou perdu. Examinez d'abord le message de journal de type = LOGIN pour l'utilisateur et assurez-vous que le code dans ce message correspond à code_id sur le message de connexion correspond à code_id sur CODE_TO_TOKEN_ERROR.