Pull Request已成功合入, 合并人@王明琦
(感谢 Wal1et 的贡献)变更摘要
本 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/下新增FederationConnection、ExternalIdentity、LocalPrincipal、FederationProvider、FederatedIdentityStore、FederationCoordinator及对应错误类型,并将federated_auth示例改为复用这些契约,FederationCoordinator负责校验连接、身份绑定及本地主体组织归属。 -
Identity Center 集成联合登录流程:新增
IdentityFederationService、DemoFederationProvider、IdentityCenterFederatedIdentityStore,通过begin_login、complete_callback、exchange_code完成“发起登录 → 回调解析 → 一次性 code 换 token”的浏览器流程,并在app.py生命周期中初始化/关闭federation_service。 -
新增联合认证数据模型与配置:在
identity_models.py新增federation_connection、federated_identity、federation_role_mapping、federation_login_state、federation_login_code五张表,并在Settings中新增IDENTITY_FEDERATION_DEMO_ENABLED、IDENTITY_FEDERATION_PUBLIC_PATH_PREFIX、IDENTITY_FEDERATION_REQUEST_TTL、IDENTITY_FEDERATION_CODE_TTL、IDENTITY_FEDERATION_DEMO_ADMIN_GROUP等配置项。 -
新增联合认证 HTTP 路由与前端入口:注册
/v1/auth/federation路由,提供连接列表、登录跳转、Demo IdP 登录页、回调与exchange接口;manager_web的AuthApi与LoginPage新增获取连接、跳转联合登录、用federation_code完成登录的逻辑及中英文文案。 -
基础库
SQLAlchemyHandler增强与 IAM 清理逻辑:新增get_table()返回已注册表的__table__以支持事务操作,并对 SQLite 内存库移除不适用的连接池参数;OrgService.delete禁止删除已绑定联合连接的组织,UserService.delete同步清理联合登录 code、联合身份与成员关系。


欢迎来到 openJiuwen 社区
Hey @u010240195 , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。


Paired: GitHub #58 ↔ GitCode !427
What type of PR is this?
/kind
Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)