You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxeo 10.10如何与Keycloak对接实现API令牌身份认证

Nuxeo 10.10 与 Keycloak 对接操作指引

前置校验

  • 确认Keycloak版本为7.x~12.x区间,更高版本的JWT协议、签名规则与Nuxeo 10.10原生模块不兼容
  • 执行命令nuxeoctl mp-list | grep oauth2确认Nuxeo原生nuxeo-platform-oauth2模块已启用,无需额外安装第三方Github对接插件,避免兼容性冲突
  • 若之前已安装过第三方Keycloak对接插件,先执行nuxeoctl mp-uninstall <插件包名>卸载后再进行后续操作

Keycloak端配置

  • 进入对应领域,新建OpenID Connect类型客户端,自定义客户端ID,访问类型设为confidential,有效重定向URI填写Nuxeo域名加后缀/nuxeo/oauth2Callback,仅做API调用场景可关闭标准流启用,开启服务帐户启用、直接访问授权启用
  • 进入客户端「高级」→「签名和加密」页,设置访问令牌签名算法为RS256
  • 进入客户端「角色」页,新建对应Nuxeo权限的角色(如nuxeo_user、nuxeo_admin),并给需要调用API的用户绑定对应角色
  • 进入「客户端作用域」,新建自定义作用域nuxeo_scope,添加用户角色映射器,令牌声明名称设为roles,勾选添加到访问令牌选项
  • 进入「领域设置」→「密钥」页,复制RS256算法对应的公钥,留待Nuxeo配置使用

Nuxeo端配置

  • 编辑Nuxeo根目录下的配置文件conf/nuxeo.conf,添加以下配置项:
nuxeo.oauth2.enabled=true
nuxeo.oauth2.jwt.issuer=https://<你的Keycloak域名>/auth/realms/<你的领域名>
nuxeo.oauth2.jwt.audience=<你新建的Keycloak客户端ID>
nuxeo.oauth2.jwt.publicKey=<你复制的Keycloak RS256公钥>
nuxeo.oauth2.jwt.usernameClaim=preferred_username
nuxeo.oauth2.jwt.groupsClaim=roles
  • 执行命令systemctl restart nuxeo重启Nuxeo服务生效

功能验证

  • 调用Keycloak接口获取访问令牌:
curl -X POST 'https://<Keycloak域名>/auth/realms/<领域名>/protocol/openid-connect/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'grant_type=password&client_id=<客户端ID>&client_secret=<客户端密钥>&username=<测试用户名>&password=<测试用户密码>'
  • 用返回的access_token调用Nuxeo API校验权限:
curl 'https://<Nuxeo域名>/nuxeo/api/v1/path/' \
-H 'Authorization: Bearer <你获取到的access_token>'

正常返回资源目录结构即代表对接成功。

内容的提问来源于stack exchange,提问作者Hannes Pries

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:45:01