当前位置: 首页 > news >正文

关于对wso2和keycloak的token交换的调研

流程梳理手稿

  • 用户以keycloak为中心,在wso2中添加了keycloak做为IDP,wso2开发者平台通过keycloak进行登录
  • 登录成功后,通过keycloak颁发的auth_code,置换keycloak平台的access_token
  • 通过wso2平台的urn:ietf:params:oauth:grant-type:jwt-bearer方式,从keycloak平台交换一个wso2平台的用户token
  • 在wso2平台,通过用户token进行应用的添加,在应用中,生成应用的consumer_key和consumer_secret密钥对,简称app密钥对
  • 通过app密钥对进行client_credentials认证,生成app级别的token,它可以是jwt或者是普通的token(会存储到数据库)
  • 用户在通过客户端工具(cherry studio,cursor)连接wso2平台的api和mcp服务时,使用这个app的token进行授权
  • 如果用户访问的api资源需要认证,那么,在打开链接后,会先跳到keycloak平台进行认证
  • 我们通过keycloak平台支持的token exchange功能,可以将wos2平台的token置换成keycloak平台的token,即统一认证平台的token
  • 我们在访问api资源之前,可以加一个网关,用来实现wso2 token到keycloak token的交换

WSO2与Keycloak集成认证流程时序图

[下面内容为AI生成]

sequenceDiagramparticipant User as 用户/客户端participant Keycloak as Keycloak IDPparticipant DevPortal as WSO2开发者平台participant WSO2Gateway as WSO2网关participant APIService as API/MCP服务%% 第一阶段:用户登录和初始认证Note over User,DevPortal: 1. 用户登录流程User->>Keycloak: 用户登录(用户名/密码)Keycloak-->>User: 返回auth_codeUser->>DevPortal: 携带auth_code访问开发者平台DevPortal->>Keycloak: 2. 用auth_code换取access_tokenKeycloak-->>DevPortal: 返回Keycloak access_tokenDevPortal->>DevPortal: 3. 通过jwt-bearer换取WSO2用户tokenDevPortal-->>User: 登录成功,建立WSO2用户会话%% 第二阶段:应用创建和令牌生成Note over User,DevPortal: 4. 应用管理User->>DevPortal: 创建应用DevPortal->>DevPortal: 生成应用密钥对(consumer_key/secret)DevPortal-->>User: 返回应用密钥对Note over User,DevPortal: 5. 应用令牌生成User->>DevPortal: 使用client_credentials请求app tokenDevPortal->>DevPortal: 验证应用密钥对DevPortal-->>User: 返回app级别token(JWT/普通token)%% 第三阶段:API访问和令牌交换Note over User,APIService: 6. 客户端访问服务User->>APIService: 使用app token访问API/MCP服务APIService->>WSO2Gateway: 转发请求(携带WSO2 token)Note over WSO2Gateway,Keycloak: 7. 认证检查和跳转APIService-->>User: 需要认证,重定向到KeycloakUser->>Keycloak: 用户认证(如需要)Keycloak-->>User: 认证完成,重定向回服务Note over WSO2Gateway,Keycloak: 8. Token交换流程WSO2Gateway->>Keycloak: 9. 通过token exchange交换tokenKeycloak-->>WSO2Gateway: 返回Keycloak平台tokenNote over WSO2Gateway,APIService: 10. 最终API访问WSO2Gateway->>APIService: 10. 携带Keycloak token访问API资源APIService-->>WSO2Gateway: 返回API响应WSO2Gateway-->>User: 返回最终结果

流程步骤说明

阶段一:用户登录和初始认证

  1. 用户登录:用户通过Keycloak进行认证,获取auth_code
  2. Token交换:WSO2开发者平台使用auth_code从Keycloak换取access_token
  3. 统一令牌:WSO2通过jwt-bearer授权方式,从Keycloak获取WSO2用户token

阶段二:应用创建和令牌生成

  1. 应用创建:用户在WSO2开发者平台创建应用,生成consumer_key/consumer_secret
  2. 应用令牌:通过client_credentials授权类型生成app级别token(可以是JWT或普通token)

阶段三:API访问和令牌交换

  1. 客户端访问:客户端工具使用app token连接WSO2 API/MCP服务
  2. 认证检查:访问需要认证的API时,系统检查并重定向到Keycloak
  3. Token交换:WSO2网关通过Keycloak的token exchange功能,将WSO2 token交换为Keycloak token
  4. API访问:使用统一的Keycloak token访问最终的API资源

关键技术点

  1. OAuth 2.0流程:混合使用了authorization_code和client_credentials授权类型
  2. Token Exchange:WSO2与Keycloak之间的令牌交换机制
  3. 统一认证:以Keycloak为中心的统一身份管理
  4. 应用级认证:通过client_credentials实现应用级别的API访问
  5. 用户级认证:通过用户令牌实现需要用户上下文的操作

这个时序图清晰地展示了整个复杂认证流程中各个组件之间的交互关系,特别是WSO2与Keycloak之间的令牌交换机制。

http://www.jsqmd.com/news/713183/

相关文章:

  • Windows Defender终极移除指南:简单3步彻底解决性能瓶颈
  • 如何用LlamaIndex实现开源项目的高效治理:从社区协作到代码质量管控的完整指南
  • 如何用Bootstrap 5 ESM模块系统快速提升前端开发效率:完整指南
  • 3分钟上手!Recharts骨架屏终极指南:告别数据加载空白页
  • GoJay在微服务中的实战应用:构建高性能API网关
  • 基于Python医疗数据分析可视化实时监控系统 采用随机森林算法进行分类预测,并使用前后端分离设计模式 构建基于Python医疗数据分析可视化实时监控系统
  • OpenPose训练避坑指南:VGG19权重冻结、损失函数调试与梯度累积的实战经验
  • 构建智能体舰队:ODE框架如何实现多AI协同规划、记忆与治理
  • 2026年临沂隐形车衣施工店排名,哪家品牌靠谱又具性价比? - 工业品牌热点
  • 番茄小说下载器完整指南:如何轻松打造你的个人数字图书馆 [特殊字符]
  • CoCo框架:代码驱动的图像生成技术解析
  • 30天突破听力瓶颈:听觉型学习者的英语发音与听力训练终极指南
  • vue3+springboot气象数据共享平台 天气预报数据共享系统
  • Element UI Tree懒加载回显踩坑记:default-checked-keys为何总多展开一层?
  • QMC音频解密工具:打破音乐格式枷锁的专业解决方案
  • 3分钟解决GitHub访问卡顿:Fast-GitHub终极加速方案完整指南
  • 本地化Cookie管理的颠覆性解决方案:Get cookies.txt LOCALLY技术深度解析
  • VS Code MCP插件生态搭建实战:从零到日均300+开发者协同的7步标准化流程
  • Nginx学习笔记
  • 如何在PotPlayer中实现实时字幕翻译:百度翻译插件配置指南
  • 自动化项目引导:从环境搭建到新人上手的工程实践
  • 架构解析:QMCDecode高效音频转换引擎的深度应用
  • 3步完成微信聊天记录永久备份:WeChatExporter完整使用指南
  • DAMO-YOLO口罩检测实战:实时口罩检测-通用模型在安防场景的应用
  • WeChatExporter完整指南:三步永久备份微信聊天记录的终极方案
  • 7步打造零故障Next.js企业级应用:从代码规范到自动化部署完整指南
  • S32K3xx硬件CRC配置避坑指南:为什么你的CRC校验总出错?可能是这3个配置细节没搞对
  • 部署与可视化系统:避坑指南:TensorRT 10.x 动态 Shape 推理深度解析与 YOLO 内存溢出解决方案
  • 一键部署OCR服务:cv_resnet18_ocr-detection镜像使用全解析
  • Phoenix LiveDashboard分布式监控:跨节点实时性能跟踪