我们的团队正在寻求使用Policies/Permissions
在 Keycloak 中,在用户登录时向用户授予范围,但前提是他们具有特定角色。
我已经完成了几个教程,并成功地使用它进行了设置和测试Evaluate
选项卡(在Authorization
)。如果我的用户在我的策略中具有指定的角色,则范围会显示在令牌中。当我删除角色时,范围不会显示。
这一切都很棒。我们的问题是,当我使用同一客户端(即不使用评估选项卡)进行身份验证代码流调用时,它不起作用。我从来没有得到任何authorization
我的令牌中的部分根本...这仅在我使用时出现Evaluate
tab.
我会注意到,我已经尝试过验证代码流调用来请求范围以及请求资源,但也不请求它们。同样的结果...不authorization
生成的令牌中的所有部分。
我是否遗漏了此功能应该如何工作的信息?我的差距在哪里?蒂亚!
您在“评估”选项卡中获得的令牌是not访问令牌,它是 Keycloak 在请求权限时向客户端颁发的授权令牌。
您通过授权码流程获取的访问令牌将不包含权限。
使用 Keycloak 授权服务时,您的客户端将通过从授权 REST API 请求授权令牌来获取权限(参见:https://www.keycloak.org/docs/latest/authorization_services/#_service_obtaining_permissions https://www.keycloak.org/docs/latest/authorization_services/#_service_obtaining_permissions)
您可以手动执行此操作或使用政策执行者 https://www.keycloak.org/docs/latest/authorization_services/#_enforcer_overview集成在 Keycloak 适配器中:
- 春季启动:https://www.keycloak.org/docs/latest/secure_apps/#_spring_boot_adapter https://www.keycloak.org/docs/latest/securing_apps/#_spring_boot_adapter
- JavaScript:https://www.keycloak.org/docs/latest/authorization_services/#_enforcer_js_adapter https://www.keycloak.org/docs/latest/authorization_services/#_enforcer_js_adapter
- 夸库斯:https://quarkus.io/guides/security-keycloak-authorization https://quarkus.io/guides/security-keycloak-authorization
- etc..
keycloak 快速入门 github 中有很多您想要实现的示例repo https://github.com/keycloak/keycloak-quickstarts。 (以 app-authz-* 开头的文件夹)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)