谁知道如何通过
Keycloak
获取id_token?
我一直在
Keycloak
(Spring、JEE)和邮递员中与 Java
合作。
基础工作正常,但我需要
id_token
,因为有人声称它们不存在于access_token
中,但它们存在于id_token
中。
使用
keycloak-core
库我可以获得Keycloak上下文,但id_token属性始终为空。
有什么想法吗?
如果您使用的是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
只有这样才能工作
我对 Keycloak 3.4.3 版本也有同样的事情。
我在我的请求中添加了
scope=openid
,正如 Gal Margalit 在他的回答中提到的那样,它有效。
这是我的要求:
curl -X POST -H“内容类型:application/x-www-form-urlencoded”-d “scope=openid” -d“grant_type=password”-d“client_id=test”-d“[电子邮件受保护]”-d“password=test” 'https://YOUR-DOMAIN/realms/test123/protocol/openid-connect/token'
在 keycloak 2.x 中,id_token 位于返回的 token 对象内。
他们在 keycloak 3.x 中删除了它。
只需在您的请求中添加以下内容:
scope: "openid"
如下所列保留id_token
http://lists.jboss.org/pipermail/keycloak-user/2018-February/013170.html
在 Keycloak 23.0.4 中,url 中的“auth”已被省略,因此对于客户端来说,现在是:
curl -k https://IP-ADDRESS:8443/realms/Test123/protocol/openid-connect/token -d“grant_type=client_credentials”-d“client_id=SURE_APP”-d“client_secret=ca3c4212-f3e8-43a4- aa14-1011c7601c67" -d "scope=openid"
要获取用户的 id_token,必须添加用户凭据,并且 grant_type 必须更改为“密码”,即:
curl -k https://IP-ADDRESS:8443/realms/Test123/protocol/openid-connect/token -d“grant_type=password”-d“client_id=SURE_APP”-d“client_secret=ca3c4212-f3e8-43a4- aa14-1011c7601c67”-d“范围= openid”-d“用户= jdoe”-d“密码= jdoe”