Keycloak, openId-connect userInfo
Posted
技术标签:
【中文标题】Keycloak, openId-connect userInfo【英文标题】: 【发布时间】:2017-02-09 01:59:31 【问题描述】:我正在尝试使用 Keycloak 的 openId-connect 端点获取有关用户角色的信息。我正在使用 /auth/realms/moje/protocol/openid-connect/userinfo 端点来获取有关经过身份验证的用户的信息。我可以获得有关姓名、用户名、电子邮件等的信息,但我无法强制 Keyclak 向我提供有关用户角色的信息。
我已经阅读了 openID 文档,但没有找到任何关于 got to get roles 的信息...我认为必须有一种方法可以找出用户角色...也许还有另一个端点...我找不到任何信息...
所以最后我的问题是:有没有办法使用 openID 连接端点获取有关用户角色的信息?
【问题讨论】:
【参考方案1】:如果您有客户端密钥,那么您可以通过传递该密钥来获取用户角色信息。
【讨论】:
我做了,client_secret 将被普通发送,并且没有任何变化,userinfo 响应中仍然缺少角色数据。 好的,我找到了。其实情况要复杂的多,these answers解释的更详细。仅仅通过client_secret
可能还不够!【参考方案2】:
您可以在 JWT 下找到所有关联的角色。无需调用端点。 /auth/realms/moje/protocol/openid-connect/userinfo是检查JWT的合法性。
【讨论】:
如果您为技术用户发行长期代币,它可能会很有用。已授予的角色可能会被撤销,但 JWT 仍然是正确的。 user-info 返回实际角色以上是关于Keycloak, openId-connect userInfo的主要内容,如果未能解决你的问题,请参考以下文章