web-dev-qa-db-ja.com

Keycloakでid_tokenを取得する

Keycloakでid_tokenを取得する方法を誰が知っていますか?

私はKeycloak(Spring、JEE)と郵便配達員のJavaと協力してきました。

基本は問題なく機能しますが、id_tokenには存在しないが、access_tokenには存在するという主張があるため、id_tokenが必要です。

keycloak-coreライブラリを使用して、Keycloakコンテキストを取得できましたが、id_token属性は常にnullです。

いくつかのアイデア?

6
Pablo Bastidas

Keycloakバージョン3.2.1を使用している場合は、以下のメールチェーンが役立ちます。こんにちは、みんな

以下のcurlコマンドを使用しています

curl -k  https://IP-ADDRESS:8443/auth/realms/Test123/protocol/openid-connect/token -d "grant_type=client_credentials" -d "client_id=SURE_APP" -d "client_secret=ca3c4212-f3e8-43a4-aa14-1011c7601c67"

上記のコマンドの応答にid_tokenがありません。これは、kongが私が誰であるかを伝えるために必要ですか?

私のキークロークでrealm->client-> Full Scope Allowed ->True

追加する必要があることがわかりました

scope=openid

その後、それだけが機能します

8
Subodh Joshi

Keycloak 2.xでは、id_tokenは返されたトークンオブジェクト内にありました。
keycloak3.xで削除しました。
リクエストに次を追加するだけです。

scope: "openid"

id_tokenを保持するために以下にリストされているように

http://lists.jboss.org/pipermail/keycloak-user/2018-February/013170.html

2
Gal Margalit

Keycloak3.4.3バージョンでも同じことが言えました。

追加した scope=openid Gal Margalitが彼の答えで述べたように、私の要求に応じて、それは機能します。

これが私のリクエストです:

curl -X POST -H "Content-Type:application/x-www-form-urlencoded" -d "scope = openid"-d "grant_type = password" -d "client_id = test" -d "username = [email protected]" -d "password = test" ' https:// YOUR-DOMAIN/realms/test123/protocol/openid-connect/token '

1
Amin