从自建 OIDC 迁移
从自建 OIDC 迁移到 Lurus Auth
企业已有 IdP(Keycloak / Auth0 / Okta / Azure AD),希望员工继续用公司账号登录,同时把身份层外包给 Lurus。
两种策略
策略 A:Lurus Auth 作为二级 IdP(推荐)
你只管企业 IdP 的用户生命周期,Lurus 产品通过 OIDC 联邦读取身份。
策略 B:彻底搬家
原 Keycloak/Auth0 经 SCIM 导出到 Lurus Auth(Casdoor),成为唯一真相源。
策略 A — 联邦拓扑
graph LR
IDP[企业 IdP 既有] -->|OIDC 联邦| LA[Lurus Auth]
LA --> P[所有 Lurus 产品]策略 B — 搬家拓扑
graph LR
KC[原 Keycloak/Auth0] -->|SCIM 导出| LA[Lurus Auth · Casdoor]
LA --> D[所有下游]策略 A 步骤(推荐)
在 Lurus 控制台创建联邦连接 — 访问
identity.lurus.cn→ 企业设置 → 身份提供商 → 新建 → 选 OIDC。填入企业 IdP 的:- Issuer URL
- Client ID
- Client Secret
- 回调 URL(Lurus 给出)
Claim 映射 — 把企业 IdP 的属性映射到 Lurus 用户。
yaml# 将企业 IdP 的属性映射到 Lurus 用户 email: email display: name department: department # custom claim灰度 — 在企业 IdP 里先允许 5% 员工使用 Lurus 登录按钮。验证 1 周 → 放开至全员。
策略 B 步骤
导出 SCIM — 从 Keycloak 导出用户为 JSON:
bash./kcadm.sh get users -r myrealm --fields username,email,firstName,lastName -f json > users.json批量导入 Lurus
POST/admin/v1/scim/users:batchImport批量导入用户(identity.lurus.cn)bashcurl -X POST https://identity.lurus.cn/admin/v1/scim/users:batchImport \ -H "Authorization: Bearer $ADMIN_TOKEN" \ -H "Content-Type: application/json" \ -d @users.json密码策略 — Lurus 默认不迁密码(哈希不兼容),首次登录强制走"忘记密码"流程。如用 SSO 联邦则无需迁密码。
SSO 联邦的优势
企业合规
账号生命周期完全在企业。
离职秒封
企业 IdP 停用 → Lurus 立即不可登录。
审计统一
登录日志在企业 IdP。
MFA 复用
企业已有 MFA 策略生效。
常见问题
会话会冲突吗?
Lurus 使用独立的 session cookie,不影响原系统。
PAT / JWT 能保留吗?
能,API 级 Token 不受 SSO 迁移影响。
审计日志怎么导出?
所有身份事件可通过下面的端点批量导出:
POST
/admin/v1/audit:export批量导出身份事件