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

如何通过AWS Cognito实现JBPM用户认证及SSO集成?

JBPM 与 AWS Cognito 认证集成方案

一、直接跳转Cognito登录页的集成思路

  • 禁用JBPM自带登录UI,修改JBPM认证入口配置,将登录请求重定向至AWS Cognito授权页面
    • 需在Cognito用户池的应用客户端中,配置JBPM回调地址(如https://your-jbpm-url/auth/callback)为允许的redirect_uri
  • 认证成功回调处理:
    • Cognito携带授权码跳转到JBPM回调接口,JBPM后端调用Cognito Token端点(https://<your-cognito-domain>/oauth2/token)交换ID Token和Access Token
    • 用Cognito提供的公钥验证Token签名,解析用户信息后创建JBPM本地会话,完成登录
  • 注销同步逻辑:
    • JBPM注销时,先调用Cognito注销端点(https://<your-cognito-domain>/logout?client_id=<your-client-id>&logout_uri=https://your-jbpm-url/login)
    • 清除JBPM本地会话后,跳转回JBPM登录页

二、借助Keycloak中间层实现集成(复用JBPM原生SSO能力)

由于JBPM原生支持Keycloak SSO,可通过Keycloak作为身份代理对接Cognito,无需大幅修改JBPM代码:

  1. Keycloak配置Cognito作为身份提供者
    • 在Keycloak后台添加OpenID Connect类型的身份提供者
    • 配置Cognito端点信息:
      • 授权端点:https://<your-cognito-domain>/oauth2/authorize
      • Token端点:https://<your-cognito-domain>/oauth2/token
      • 用户信息端点:https://<your-cognito-domain>/oauth2/userInfo
    • 从https://cognito-idp.<region>.amazonaws.com/<user-pool-id>/.well-known/jwks.json获取公钥并导入,用于Token验证
    • 配置Cognito应用客户端ID和密钥,授权范围设为openid email profile
  2. JBPM对接Keycloak SSO
    • 修改JBPM的standalone.xml配置Keycloak参数,示例片段:
      <subsystem xmlns="urn:jboss:domain:keycloak:1.1">
          <secure-deployment name="business-central.war">
              <realm>your-keycloak-realm</realm>
              <resource>jbpm-business-central</resource>
              <auth-server-url>http://your-keycloak-instance/auth</auth-server-url>
              <ssl-required>external</ssl-required>
              <use-resource-role-mappings>true</use-resource-role-mappings>
          </secure-deployment>
          <secure-deployment name="kie-server.war">
              <realm>your-keycloak-realm</realm>
              <resource>jbpm-kie-server</resource>
              <auth-server-url>http://your-keycloak-instance/auth</auth-server-url>
              <ssl-required>external</ssl-required>
              <use-resource-role-mappings>true</use-resource-role-mappings>
          </secure-deployment>
      </subsystem>
      
    • 配置JBPM登录入口指向Keycloak,Keycloak会自动跳转至Cognito登录页
  3. 注销同步配置
    • 在Keycloak身份提供者设置中开启同步注销,配置Cognito注销端点作为回调
    • 确保JBPM注销时触发Keycloak注销流程,进而同步退出Cognito

三、关键注意事项

  • 确保Cognito、Keycloak、JBPM的域名和端口在同一域,或已配置CORS允许跨域请求
  • 权限映射:将Cognito用户角色映射到JBPM对应角色,可通过Keycloak角色映射功能或JBPM用户组配置实现
  • Token有效期:根据业务需求调整Cognito和Keycloak的Token过期时间,避免频繁重新认证

内容的提问来源于stack exchange,提问作者Yogesh Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:02:58