Skip to content

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_resourcesSCIM 用户资源(用户名、显示名称、邮箱、活跃状态、元数据)
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 用户独立管理,不影响本地用户体系
  • 同步审计: 所有同步操作记录完整日志
  • 安全删除: 用户删除操作不可恢复,需谨慎操作

相关文档

基于 MIT 许可发布