【发布时间】:2022-08-22 14:40:21
【问题描述】:
我有一个浏览器前端和多个机器对机器客户端使用的 RESTful API。因此,我通过标准流程(授权代码)和服务帐户流程(客户端凭据)使用 Keycloak 18 发布令牌。
对 API 资源的操作受到 read:resourceA、update:resourceA、read:resourceB 等范围的保护。
当我将领域角色分配给客户端范围时,如果我将用户映射到同一个领域角色,则通过授权代码流(浏览器前端)发布的令牌包含范围。
此外,当我创建机器对机器客户端并将客户端范围直接添加到客户端时,M2M 客户端的令牌也包含范围。
到目前为止,一切都很好。但是,一旦我尝试同时进行这两项操作,我就不再拥有 M2M 客户端发布的令牌的范围。
似乎将客户端范围添加到角色使得无法以其他方式使用该范围。
显而易见但不好的解决方案是为这种客户端创建第二组范围。还有其他我不知道的解决方案吗?
我正在从 Auth0.com 迁移到 Keycloak,这是目前唯一阻止我完成此迁移的点。
谢谢, 帕斯卡
标签: oauth-2.0 authorization keycloak