已合并
feat(auth): 集成联合认证与Manager登录 #427
feat(auth): 集成联合认证与Manager登录 #427
已合并
Wal1et创建于 22 天前
Wal1et
Wal1et
22 天前

Paired: GitHub #58GitCode !427

What type of PR is this?

/kind

Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入

likedislike
Pull Request已成功合入, 合并人@王明琦
(感谢 Wal1et 的贡献)
Wal1etWal1et
22 天前 关联了issue:[Feature]: Agent Runtime - Agent执行
atomgit-bot
atomgit-bot
22 天前 评论:

变更摘要

本 PR 主要实现联合认证与 Manager 登录的集成:将原先仅存在于 service/examples/federated_auth 示例中的联合认证领域对象抽象为正式的 openjiuwen_runtime.service.auth.federation 契约(新增 FederationCoordinator 协调 Provider 与身份存储),并在 Identity Center 中新增联合登录服务、数据表、配置与 HTTP 路由,使浏览器端可通过企业 Demo IdP 完成联合登录后换取本地 JWT/refresh token;同时 Manager Web 登录页新增企业账号登录入口,SQLAlchemyHandler 也补充了事务查询所需的 get_table 及 SQLite 内存库连接池参数处理。

主要改动

  • 新增正式的联合认证契约:在 service/openjiuwen_runtime/service/auth/federation/ 下新增 FederationConnectionExternalIdentityLocalPrincipalFederationProviderFederatedIdentityStoreFederationCoordinator 及对应错误类型,并将 federated_auth 示例改为复用这些契约,FederationCoordinator 负责校验连接、身份绑定及本地主体组织归属。

  • Identity Center 集成联合登录流程:新增 IdentityFederationServiceDemoFederationProviderIdentityCenterFederatedIdentityStore,通过 begin_logincomplete_callbackexchange_code 完成“发起登录 → 回调解析 → 一次性 code 换 token”的浏览器流程,并在 app.py 生命周期中初始化/关闭 federation_service

  • 新增联合认证数据模型与配置:在 identity_models.py 新增 federation_connectionfederated_identityfederation_role_mappingfederation_login_statefederation_login_code 五张表,并在 Settings 中新增 IDENTITY_FEDERATION_DEMO_ENABLEDIDENTITY_FEDERATION_PUBLIC_PATH_PREFIXIDENTITY_FEDERATION_REQUEST_TTLIDENTITY_FEDERATION_CODE_TTLIDENTITY_FEDERATION_DEMO_ADMIN_GROUP 等配置项。

  • 新增联合认证 HTTP 路由与前端入口:注册 /v1/auth/federation 路由,提供连接列表、登录跳转、Demo IdP 登录页、回调与 exchange 接口;manager_webAuthApiLoginPage 新增获取连接、跳转联合登录、用 federation_code 完成登录的逻辑及中英文文案。

  • 基础库 SQLAlchemyHandler 增强与 IAM 清理逻辑:新增 get_table() 返回已注册表的 __table__ 以支持事务操作,并对 SQLite 内存库移除不适用的连接池参数;OrgService.delete 禁止删除已绑定联合连接的组织,UserService.delete 同步清理联合登录 code、联合身份与成员关系。

likedislike
不准确?
atomgit-bot
atomgit-bot
22 天前 评论:

代码审查

✅ 未发现问题

likedislike
不准确?
openJiuwen-bot成员
22 天前 评论:

欢迎来到 openJiuwen 社区

Hey @u010240195 , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

likedislike
atomgit-bot
atomgit-bot
22 天前 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
OopenJiuwen-bot成员
22 天前 添加了label:openJiuwen-cla/yes
Oopenjiuwen-sync成员
22 天前 修改了pull request 的描述
openJiuwen-bot成员
22 天前 评论:
任务名称 结果 日志操作
静态检查 ❌FAILED 点此跳转
禁用词扫描 N/A N/A
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 N/A N/A
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck {{ruff_codecheck_result}} {{ruff_codecheck_link_text}}
likedislike
OopenJiuwen-bot成员
22 天前 添加了label:ci-failed
Wal1etWal1et
22 天前 强制推送  1 个提交:9e7708f5-feat(auth): 集成联合认证与 Manager 登录
OopenJiuwen-bot成员
22 天前 删除了label:openJiuwen-cla/yes
OopenJiuwen-bot成员
22 天前 添加了label:openJiuwen-cla/yes
OopenJiuwen-bot成员
22 天前 删除了label:ci-failed
openJiuwen-bot成员
22 天前 评论:
任务名称 结果 日志操作
静态检查 ❌FAILED 点此跳转
禁用词扫描 N/A N/A
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 N/A N/A
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck {{ruff_codecheck_result}} {{ruff_codecheck_link_text}}
likedislike
OopenJiuwen-bot成员
22 天前 添加了label:ci-failed
Wal1etWal1et
22 天前 强制推送  1 个提交:00aedb10-feat(auth): 集成联合认证与 Manager 登录
OopenJiuwen-bot成员
22 天前 删除了label:openJiuwen-cla/yes
OopenJiuwen-bot成员
22 天前 添加了label:openJiuwen-cla/yes
openJiuwen-bot成员
22 天前 评论:

CLA 签署成功

u010240195, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
OopenJiuwen-bot成员
22 天前 删除了label:ci-failed
openJiuwen-bot成员
22 天前 评论:
任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
禁用词扫描 N/A N/A
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 N/A N/A
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck {{ruff_codecheck_result}} {{ruff_codecheck_link_text}}
likedislike
OopenJiuwen-bot成员
22 天前 添加了label:ci-successful
王明琦王明琦成员
18 天前 合入了pull request
OopenJiuwen-bot成员
18 天前 删除了label:ci-successful