跳转到内容

用 SCIM 预配用户

当你要掌握生命周期控制权时,请使用本指南——员工离职必须自动撤销访问权限, 而不只是阻止其今后的登录。SCIM 正是 IdP(Okta、Entra ID 及其他)为此使用的 推送协议。

  • SSO 已经可以正常工作(SSO 教程 或 OIDC 指南),
  • 一台 IdP 能通过 HTTPS 访问的服务器——SCIM 调用来自 IdP, 而不是用户的浏览器。请使用内置隧道 (设置 → 服务器 → 连接与状态 → 共享此服务器 → Cloudflared/ngrok/Tailscale)或一个公共 URL。只能通过 WebSocket 中继 访问的服务器无法接收 SCIM 推送;在那里 JIT 预配仍然可用,但本指南不适用。
  1. 打开 设置 → 服务器 → 单点登录 → 用户预配(SCIM) 卡片。该卡片会显示 端点,例如 https://<your-server>/scim/v2/Users。
  2. 按 生成 token(如果已存在 token,则按 重新生成 token)——bearer token 只会在对话框中显示一次,并会被复制到剪贴板。请把它保存到你的密码 管理器中;服务器只保留一份可进行常量时间验证的副本。
  3. 在你的 IdP 预配设置中,用以下内容启用 SCIM:
    • 基础 URL:上面的端点
    • 身份验证:Authorization: Bearer <token>
    • 用户 ID:userName(电子邮件)或 externalId——两者都能匹配
  4. 先用一个用户测试:从 IdP 推送该用户,确认其出现(SCIM 创建会把提供商的 externalId 固定到该账户上,与首次 SSO 登录所做的固定相同)。

当 IdP 发送 active: false(或 DELETE)时,如果该账户是某个工作区的 所有者,SCIM 会先拒绝(请先转移所有权)。否则:

  1. 先撤销该账户的所有设备凭据——活动会话会在数秒内断开,
  2. 移除该账户在所有工作区中的成员资格,
  3. 把该账户标记为已停用(它再也无法登录,无论 IdP 之后说什么,直到被显式 重新激活为止)。

用户这一行本身会保留——工单、消息和提交上的归属是永久的。重新激活 (SCIM active: true)会恢复登录,但不会恢复成员资格:那些需要新的邀请, 或者登录时自动加入成员的策略。

  • 每次调用都返回 401——token 已更改;请重新生成并更新 IdP。
  • 端点无法访问——隧道已断开,或者服务器只能经中继访问。SCIM 需要直连 HTTPS;JIT 则不受影响,仍可正常工作。
  • 推送组时报错(501)——这是有意为之:组→角色映射在登录时依据 SAML/OIDC 的组属性完成,而不是依据推送的组。