谁知道如何使用Keycloak
获取id_token?
我一直在Keycloak
(Spring,JEE)和邮递员工作Java
。
基础工作正常,但我需要id_token
,因为有些声称它们不在access_token
中,但它们出现在id_token
中。
使用keycloak-core
库我可以获取Keycloak上下文,但id_token属性始终为null。
有些想法?
答案 0 :(得分:5)
如果您使用的是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告诉我是谁?
在我的keycloak realm->client-> Full Scope Allowed ->True
好的,我发现我们必须添加
scope=openid
然后才会起作用
答案 1 :(得分:2)
在keycloak 2.x中,id_token位于返回的令牌对象内 他们在keycloak 3.x中删除了它 只需添加以下内容即可:
scope: "openid"
如下所列,以保留id_token
http://lists.jboss.org/pipermail/keycloak-user/2018-February/013170.html
答案 2 :(得分:0)
我与Keycloak 3.4.3版本具有相同的功能。
我在Gal Margalit的回答中提到了scope=openid
,并且有效。
这是我的要求:
卷曲-X POST -H“内容类型:应用程序/ x-www-form-urlencoded” -d “ scope = openid” -d“ grant_type = password” -d“ client_id = test” -d“ username=test@test.hr” -d“ password = test” 'https://YOUR-DOMAIN/realms/test123/protocol/openid-connect/token'