web-dev-qa-db-ja.com

keycloak-ユーザー認証後のCODE_TO_TOKEN_ERROR

私はnodeJS keycloakアダプターを使用していますが、これまでのところ、クライアントアプリケーションはkeycloakログインにリダイレクトしています。

ログインしようとすると、キークロークログに次のようなエラーが表示されます。

12:07:12,341 WARN [org.keycloak.events](デフォルトtask-30)type = CODE_TO_TOKEN_ERROR、realmId = myrealm、clientId = client-test、userId = xxx、ipAddress = xxx.xxx.xxx.xx、error = invalid_code 、grant_type = authorization_code、code_id = xxx、client_auth_method = client-secret

私の高速アプリケーションに送り返されたエラーメッセージは、「許可コードを取得できませんでした」と表示されます。

誰かがこれが正確に何を意味するかについていくつかの光を当てることができますか? realm\client\user設定で何かを間違って設定したとしか思えません。

ありがとう

12
mindparse

解決策を見つけました。このガイドに従っている場合: https://www.ibm.com/developerworks/library/se-oauthjavapt3/index.html アクセス用のアクセスコードを交換すると、 token(/ realms/{realm-name}/protocol/openid-connect/token)あなたは、アクセスコードを要求するときに使用したのと同じredirect_uriを追加する必要があります。今はうまくいきます。

それが役に立てば幸い、

エイドリアン

7
Adrian Madaras

リダイレクトURLは完全に類似している必要があります。コードhttp://example.com/frontend/を取得するために、次のリダイレクトURLを使用していました。トークンを取得するときに、次のURLを使用していましたhttp://example.com/両方の呼び出しに同じURLを使用して問題を解決しました。

1

これは通常、コードをトークンに交換するためにKeycloakに送り返されたコードが無効であるか、失われたことを意味します。まず、ユーザーのtype = LOGINのログメッセージを見て、そのメッセージのコードがログインメッセージのcode_idと一致し、CODE_TO_TOKEN_ERRORのcode_idと一致することを確認します。

1
Scott