当前位置: 首页 > 知识库问答 >
问题:

使用密钥斗篷获取id_令牌

常光明
2023-03-14

谁知道如何使用keydape获取id_令牌?

我一直在Java(Spring,JEE)和postman中与Keyclope合作。

基本的工作正常,但我需要id_token,因为有一些声明,它们不存在于access_token中,但它们存在于id_token中。

使用keycloak-core库,我可以获得Keycloak上下文,但id_token属性始终为null。

有什么主意吗?

共有3个答案

松新
2023-03-14

在钥匙斗篷2。x id_令牌位于返回的令牌对象内<他们在钥匙斗篷3中移除了它。x、
只需在您的请求中添加以下内容:

scope: "openid"

如下所列,以保留id_令牌

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

殷承恩
2023-03-14

我与Keycloak 3.4.3版本有相同的东西。

我在我的请求中添加range=openid,正如Gal Margalit在他的回答中提到的那样,它是有效的。

这是我的要求:

curl-X POST-H“内容类型:应用程序/X-www-form-urlencoded“-d”scope=openid“-d”grant\u Type=password“-d”client\u id=test“-d”用户名=test@test.hr“-d”密码=测试“'https://YOUR-DOMAIN/realms/test123/protocol/openid-connect/token'

任小云
2023-03-14

如果您使用的是KeyClope 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"

在上述命令的响应中

在我的钥匙斗篷领域-

好吧我找到了我们得加上

scope=openid

 类似资料:
  • 我们有一个角度水疗中心,是由OIDC授权使用隐式流。我们使用Keycloak作为我们的授权服务器。访问令牌的寿命很短,并且通过隐藏的iframe定期刷新。 在了解到授权代码流PKCE是授权SPA的新推荐方式后,我们决定切换流。一切正常,但每次我们调用令牌endpoint时,KeyCloak确实会给我们一个刷新令牌(以及Access和ID-Token)。由于没有安全的方法来存储刷新令牌,我们想继续使

  • 我有一个angular应用程序作为前端,spring boot作为后端技术,作为授权服务器,我使用的是KeyClope 12.0.4。 我不想在angular和Spring Boot中使用KeyClope适配器,我想使用普通的oauth2 oauth/token,这样我就可以在不需要太多更改代码的情况下将我的授权服务器从KeyClope更改为okta。 我可以使用postman直接点击KeyClo

  • 我试图使用Keycloak的openId-connectendpoint来获取关于用户角色的信息。我使用/auth/realms/moje/protocol/OpenID-connect/userinfoendpoint来获取关于已验证用户的信息。我可以获得姓名、用户名、电子邮件等信息。但是我不能强迫Keyclak给我关于用户角色的信息。 我已经阅读了openID文档,我没有找到任何关于必须获取角

  • 使用KeyCloak时,访问令牌与用户信息令牌有何不同? 从OAuth2/OpenIDConnect中,我了解到访问令牌提供了用户已经通过身份验证的信息,您需要使用用户信息令牌来获取关于用户及其配置文件/角色等的更多信息。 当我看到访问令牌时https://jwt.io/而不是用户信息令牌。我能够获得与用户配置文件相同的信息 为什么会这样,使用Keycloak时访问令牌与用户信息令牌有何不同?

  • 不知何故,我迷失了Spring Security和Keycloak。 在一个应用程序中,我成功地从KeyClope实例接收了一个访问令牌。然后,我使用这个令牌请求我的Spring Security服务器(它使用相同的KeyClope实例)。 但我得到的只是403个错误。 以下是代码摘录(用kotlin编写): 安全配置: 在我的控制器中: 在我对服务器的调用中,我可以验证授权头的设置如下:auth

  • 部署在AWS上,我不想隧道到盒子并打开浏览器禁用它。 似乎存在一个配置:,可以放置在文件,但我不确定在哪个对象下。我在“王国”下试过,但一点运气都没有。 我不想在适配器级别禁用它,它需要全局禁用,那么在哪里,或者如何全局禁用ssh/https? 另外,我知道这在生产中是不推荐的。)