SCIM 用户配置 (scim)
Headless 命令 — 不依赖桌面 GUI,直接使用核心包运行。适用于服务器、CI/CD、容器化等无桌面环境。
核心特性
- 👤 用户管理: 创建、查看、列出和删除 SCIM 用户
- 🔌 连接器管理: 查看与外部身份提供商的连接状态
- 🔄 同步配置: 触发身份提供商的用户同步
- 📊 配置状态: 查看 SCIM 配置概览(用户数、连接器数、同步记录)
概述
ChainlessChain CLI SCIM(System for Cross-domain Identity Management)模块实现了 SCIM 2.0 协议,用于与企业身份提供商(IdP)进行自动化用户配置。
users 子命令管理 SCIM 用户的完整生命周期:创建、查询、列出和删除。connectors 查看与外部 IdP(如 Azure AD、Okta、OneLogin)的连接状态。sync 触发指定连接器的用户同步操作,将 IdP 中的用户变更自动同步到本地。status 提供全局配置概览。
命令参考
scim users list — 列出用户
bash
chainlesschain scim users list
chainlesschain scim users list --json列出所有 SCIM 用户,显示 ID、用户名、显示名称和活跃状态。
scim users create — 创建用户
bash
chainlesschain scim users create <username>
chainlesschain scim users create alice -n "Alice Wang" -e "alice@example.com"创建一个 SCIM 用户。--name 指定显示名称,--email 指定邮箱。
scim users get — 查看用户
bash
chainlesschain scim users get <user-id>
chainlesschain scim users get usr-001 --json按 ID 查看 SCIM 用户详情。
scim users delete — 删除用户
bash
chainlesschain scim users delete <user-id>
chainlesschain scim users delete usr-001删除指定 SCIM 用户。
scim connectors — 查看连接器
bash
chainlesschain scim connectors
chainlesschain scim connectors --json列出所有 SCIM 连接器,显示名称、提供商和状态。
scim sync — 触发同步
bash
chainlesschain scim sync <connector-id>
chainlesschain scim sync conn-001触发指定连接器的用户同步操作。
scim status — 配置状态
bash
chainlesschain scim status
chainlesschain scim status --json显示 SCIM 配置概览:用户数、连接器数、同步操作数、最后同步时间。
数据库表
| 表名 | 说明 |
|---|---|
scim_resources | SCIM 用户资源(用户名、显示名称、邮箱、活跃状态、元数据) |
scim_sync_log | 同步记录(连接器 ID、操作类型、状态、时间戳) |
系统架构
用户命令 → scim.js (Commander) → scim-manager.js
│
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
用户管理 连接器管理 同步引擎
(CRUD 操作) (IdP 连接状态) (触发/记录同步)
▼ ▼
scim_resources scim_sync_log关键文件
packages/cli/src/commands/scim.js— 命令实现packages/cli/src/lib/scim-manager.js— SCIM 管理库
测试
bash
npx vitest run __tests__/unit/scim-manager.test.js
# 23 tests, all pass使用示例
场景 1:用户管理
bash
# 创建用户
chainlesschain scim users create alice \
-n "Alice Wang" -e "alice@example.com"
chainlesschain scim users create bob \
-n "Bob Li" -e "bob@example.com"
# 列出所有用户
chainlesschain scim users list
# 查看用户详情
chainlesschain scim users get usr-001 --json
# 删除用户
chainlesschain scim users delete usr-001场景 2:IdP 同步
bash
# 查看连接器状态
chainlesschain scim connectors --json
# 触发同步
chainlesschain scim sync conn-001
# 查看配置概览
chainlesschain scim status故障排查
| 症状 | 可能原因 | 解决方案 |
|---|---|---|
| "No SCIM users" | 未创建用户 | 使用 scim users create |
| "User not found" | 用户 ID 不存在 | 使用 scim users list 确认有效 ID |
| "No SCIM connectors" | 未配置连接器 | 需在配置文件中添加 IdP 连接器 |
| 同步失败 | 连接器不可达 | 检查 IdP 连接和凭证 |
安全考虑
- SCIM 2.0 标准: 遵循 RFC 7643/7644 标准,兼容主流 IdP
- 用户隔离: SCIM 用户独立管理,不影响本地用户体系
- 同步审计: 所有同步操作记录完整日志
- 安全删除: 用户删除操作不可恢复,需谨慎操作
