首页 > 解决方案 > Keycloak 策略执行器仅承载客户端

问题描述

我正在开发一个使用 Keycloak 作为身份验证服务的 Node.js Web 应用程序。我已经有两个客户端: Web 应用程序客户public端 (app-web) 和bearer-onlyAPI 客户端 (app-api)。在 app-api 上,我使用资源、范围、策略和权限来控制访问。

为了检查权限,我使用keycloak.enforcer(...)keycloak-connect模块中的(npm keycloak-connect)。当我尝试检查权限时,服务器总是返回403 Access denied响应。但是,如果我将 app-api 从更改bearer-only为机密(保持相同的keycloak.json配置文件),客户端可以正常工作并且能够检查权限。

这个问题似乎是因为bearer-only客户端无法从服务器获取令牌(keycloak 类似问题)。

我的问题是:这是 Keycloak 的正常行为吗?如果不能使用,为什么要在客户端中允许Authorization选项卡?我错过了一些配置吗?bearer-onlykeycloak.enforcer

谢谢你的帮助。

标签: node.jskeycloak

解决方案


几天前,我也偶然发现了这个仅限持有人的东西。而且我还发现您可以启用细粒度授权令人困惑,我也花了一些时间才发现这一点。好吧,顾名思义,仅持有者客户端仅通过其持有者令牌对客户端进行身份验证。


推荐阅读