node.js - Keycloak 策略执行器仅承载客户端
问题描述
我正在开发一个使用 Keycloak 作为身份验证服务的 Node.js Web 应用程序。我已经有两个客户端: Web 应用程序客户public
端 (app-web) 和bearer-only
API 客户端 (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-only
keycloak.enforcer
谢谢你的帮助。
解决方案
几天前,我也偶然发现了这个仅限持有人的东西。而且我还发现您可以启用细粒度授权令人困惑,我也花了一些时间才发现这一点。好吧,顾名思义,仅持有者客户端仅通过其持有者令牌对客户端进行身份验证。
推荐阅读
- javascript - 根据另一个cfselect过滤cfselect中的数据
- json - 使用自定义格式将结构的 time.Time 字段编组为 JSON 的通用方法
- nuget - Visual Cobol 2012 和 Nuget
- python - Odoo 10:如何使用 create 方法向表中的 many2one 字段插入值?
- haskell - 结构化 Haskell 模式无法安装
- apache-spark-sql - 火花 jdbc 读取调整 where 没有主键的表
- ios - UIView 轮播 Xcode
- export - 导入了一个虚拟硬盘作为新设备,我需要它以相同的方式导出它(VirtualBox)
- excel - 将语音转换为excel中的文本-可以这样做吗
- javascript - 如何正确使用选框?