我有一个带有领域和客户端的 Keycloak 服务器设置。我在客户端上进行了授权设置,并且能够在管理界面中评估身份验证。
当我单击“显示授权数据”时,我可以在响应中看到带有
authorization
的 permissions
属性。
我有一个 Web 客户端,它通过 keycloak 使用重定向进行 oidc 身份验证。我想限制哪些 keyclock 用户能够登录客户端,因此我想授权登录,但我无法在 JWT 中看到
authorization
属性。
我是否完全误解了它的工作原理,或者我可以做些什么来查看该属性?
好吧,我终于开始思考了。简短的回答 - 我需要 RTFM。
长答案 - 我需要点击令牌端点两次。第一次使用 grant_type =
authorization_code
来获取访问令牌。然后再次使用 grant_type = urn:ietf:params:oauth:grant-type:uma-ticket
(并在标头中使用访问令牌)让 keycloak 客户端进行身份验证。
如果第二个响应返回为 403 - access_denied,则我拒绝登录,否则,我允许用户登录我的系统。
我需要的具体部分可以在文档中找到:https://www.keycloak.org/docs/6.0/authorization_services/#_service_obtaining_permissions
https://www.keycloak.org/docs/latest/authorization_services/index.html#_service_obtaining_permissions