SCIM 用户预配
配置 SCIM 用户配置
ScribbleMaps 支持 SCIM 2.0(跨域身份管理系统),用于自动化的用户配置和停用。这允许您自动将用户从您的身份提供商 (IdP) 同步到 ScribbleMaps,确保团队成员身份与您组织的目录保持同步。
SCIM 配置可在 team.scribblemaps.com 获得,且完全免费。
目录
- 什么是 SCIM?
- 在您开始之前
- 步骤 1:在 ScribbleMaps 中启用 SCIM
- 步骤 2:生成 Bearer Token
- 步骤 3:配置您的身份提供商
- 步骤 4:设置默认产品分配
- 步骤 5:测试并分配用户
- 特定提供商指南
- 支持的 SCIM 操作
- 用户生命周期管理
- 故障排除
什么是 SCIM?
SCIM(跨域身份管理系统)是一个开放标准,允许您自动执行以下操作:
- 配置用户 - 当在您的 IdP 中分配用户时,自动创建 ScribbleMaps 帐户
- 更新用户 - 保持用户信息(姓名、电子邮件)同步
- 停用用户 - 当从您的 IdP 中删除用户时,自动停用帐户
- 管理角色 - 通过组群成员身份将用户分配给 Admin 或 Member 角色
SCIM 与 SSO (SAML/OIDC) 协同工作,提供完整的身份生命周期管理。
在您开始之前
- 您必须是 Team Owner 才能配置 SCIM
- 您需要访问身份提供商的管理控制台
- 您的 IdP 必须支持 SCIM 2.0(Okta、Microsoft Entra ID、OneLogin、JumpCloud 等)
- 为了获得最佳的用户体验,我们建议在配置 SCIM 之前先配置 SSO
步骤 1:在 ScribbleMaps 中启用 SCIM
- 登录到 team.scribblemaps.com
- 导航到 SCIM Provisioning(左侧边栏)
- 将 Enable SCIM 切换为 ON
注意:在完全启用 SCIM 之前,您需要生成一个 bearer token。
步骤 2:生成 Bearer Token
bearer token 用于向 ScribbleMaps 验证您的身份提供商。
- 在 SCIM 设置页面上,点击 Generate Token
- 立即复制该 token 并安全地存储它
重要安全注意事项:
- 该 token 仅显示一次 - 如果丢失,您需要生成一个新 token
- 请像对待密码一样对待此 token - 任何拥有该 token 的人都可以管理您团队的用户
- 如果 token 泄露,您可以随时撤销并重新生成该 token
- 撤销 token 将立即停止所有 SCIM 操作,直到配置了新的 token
步骤 3:配置您的身份提供商
使用以下详细信息在您的 IdP 中将 ScribbleMaps 配置为 SCIM 应用程序:
| 设置 | 值 |
|---|---|
| SCIM Base URL | https://api.scribblemaps.com/scim/v2 |
| 验证方法 | HTTP Header / Bearer Token |
| Authorization Header | Bearer YOUR_TOKEN_HERE |
| 唯一标识符 |
userName (email address) |
SCIM 端点参考
| 端点 | 用途 |
|---|---|
/scim/v2/Users |
用户配置和管理 |
/scim/v2/Groups |
角色/组群成员身份管理 |
/scim/v2/ServiceProviderConfig |
SCIM 功能(发现) |
/scim/v2/ResourceTypes |
支持的资源类型(发现) |
/scim/v2/Schemas |
用户和组群架构(发现) |
步骤 4:设置默认产品分配(可选)
当通过 SCIM 配置用户时,您可以自动为他们分配产品许可:
- 在 SCIM 设置页面上,找到 Default Product Assignment
- 选择一个产品:
- None - 创建用户时不分配产品(稍后手动分配)
- Viewer - 仅限查看访问权限
- Pro Basic - 标准编辑功能
- Pro Business - 完整功能访问权限
- 点击 Save
注意:只有在有空余席位时才会为用户分配产品。如果没有可用席位,则会创建用户并保持未分配状态。
步骤 5:测试并分配用户
- 在您的身份提供商中,使用 Test Connection 功能来验证 SCIM 连接性
- 在您的 IdP 中将测试用户分配给 ScribbleMaps 应用程序
- 验证该用户是否出现在您的 ScribbleMaps 团队成员列表中
- 确认后,根据需要分配其他用户或组群
特定提供商指南
Okta
- 在 Okta 管理控制台中,转到 Applications > Browse App Catalog
- 搜索“SCIM 2.0 Test App (Header Auth)”或创建一个自定义 SCIM 应用程序
- 转到 Provisioning 选项卡 > Configure API Integration
- 勾选 Enable API integration
- 配置:
-
SCIM 2.0 Base URL:
https://api.scribblemaps.com/scim/v2 - OAuth Bearer Token: 粘贴您的 ScribbleMaps SCIM token
-
SCIM 2.0 Base URL:
- 点击 Test API Credentials 进行验证
- 转到 Provisioning > To App 并启用:
- Create Users
- Update User Attributes
- Deactivate Users
- 转到 Assignments 选项卡以分配用户或组群
Microsoft Entra ID (Azure AD)
- 在 Azure 门户中,转到 Microsoft Entra ID > Enterprise Applications
- 选择您的 ScribbleMaps 应用程序(或创建一个)
- 转到 Provisioning > Get Started
- 将 Provisioning Mode 设置为 Automatic
- 在 Admin Credentials 下:
-
Tenant URL:
https://api.scribblemaps.com/scim/v2 - Secret Token: 粘贴您的 ScribbleMaps SCIM token
-
Tenant URL:
- 点击 Test Connection 进行验证
- 配置用户属性的 Mappings
- 将 Provisioning Status 设置为 On
- 转到 Users and groups 以分配用户
OneLogin
- 在 OneLogin 管理员中,转到 Applications > Add App
- 搜索“SCIM Provisioner with SAML (SCIM v2 Core)”或类似内容
- 转到 Configuration 选项卡
- 配置:
-
SCIM Base URL:
https://api.scribblemaps.com/scim/v2 - SCIM Bearer Token: 粘贴您的 ScribbleMaps SCIM token
-
SCIM Base URL:
- 转到 Provisioning 选项卡并启用配置
- 转到 Users 选项卡以分配用户
JumpCloud
- 在 JumpCloud 管理员中,转到 SSO Applications
- 点击 + 添加新应用程序
- 选择 Custom SCIM
- 配置:
-
Base URL:
https://api.scribblemaps.com/scim/v2 - Token Key: 粘贴您的 ScribbleMaps SCIM token
- Authentication: Bearer Token
-
Base URL:
- 点击 Test Connection
- 配置属性映射
- 将用户组群分配给该应用程序
支持的 SCIM 操作
用户操作
| 操作 | 方法 | 是否支持 | 描述 |
|---|---|---|---|
| 列出用户 | GET /Users | 是 | 检索带有分页和过滤功能的所有用户 |
| 获取用户 | GET /Users/{id} | 是 | 通过 ID 检索特定用户 |
| 创建用户 | POST /Users | 是 | 配置新用户 |
| 替换用户 | PUT /Users/{id} | 是 | 完整更新用户属性 |
| 更新用户 | PATCH /Users/{id} | 是 | 部分更新用户属性 |
| 删除用户 | DELETE /Users/{id} | 是 | 停用用户(软删除) |
组群操作
| 操作 | 方法 | 是否支持 | 描述 |
|---|---|---|---|
| 列出组群 | GET /Groups | 是 | 返回 Admin 和 Member 角色组群 |
| 获取组群 | GET /Groups/{id} | 是 | 检索包含成员列表的组群 |
| 更新组群 | PATCH /Groups/{id} | 是 | 从角色组群中添加/删除成员 |
| 创建组群 | POST /Groups | 否 | 不支持(角色是固定的) |
支持的用户属性
| SCIM 属性 | ScribbleMaps 字段 | 是否必填 |
|---|---|---|
userName |
电子邮件地址 | 是 |
externalId |
外部 IdP 标识符 | 否 |
name.givenName |
名字 | 否 |
name.familyName |
姓氏 | 否 |
displayName |
显示名称 | 否 |
active |
帐户状态 | 否 |
emails[].value |
电子邮件地址 | 否 |
支持的过滤器
| 过滤器 | 示例 |
|---|---|
| 按电子邮件过滤 | userName eq "[email protected]" |
| 按外部 ID 过滤 | externalId eq "12345" |
| 按状态过滤 | active eq true |
用户生命周期管理
当用户被配置时
- 在 ScribbleMaps 中创建一个新的团队成员帐户
- 从您的 IdP 填充用户信息(姓名、电子邮件)
- 如果配置了默认产品且有可用席位,系统会自动分配许可
- 用户可以立即通过 SSO 登录(如果已配置)
当用户被更新时
- 更新用户属性(姓名、显示名称)以匹配您的 IdP
- 电子邮件更改将进行同步(除非用户已关联其帐户)
当用户被停用时
- 用户的帐户将被停用(软删除)
- 所有产品许可都将被移除,从而释放席位
- 所有活动会话将立即失效
- 用户将无法再登录
- 用户数据和地图将被保留(不会被删除)
- 如果重新配置了该用户,则可以重新激活该帐户
通过组群进行角色管理
ScribbleMaps 通过 SCIM 公开两个角色组群:
| 组群 ID | 角色 | 权限 |
|---|---|---|
admin |
管理员 | 管理团队设置、用户和账单 |
member |
成员 | 标准团队成员访问权限 |
要将用户分配为管理员,请通过 SCIM PATCH 将其添加到 admin 组群。Owner 角色无法通过 SCIM 进行修改。
故障排除
常见问题
“401 Unauthorized”或“Invalid token”
- 验证 bearer token 是否正确且未被撤销
- 确保在 Authorization 标头中将 token 作为
Bearer YOUR_TOKEN传递 - 检查 token 是否已过期(如果设置了过期时间)
- 如果需要,生成一个新 token
“409 Conflict” - 用户已存在
- 您的团队中已存在使用该电子邮件的用户
- 如果现有用户已被停用, SCIM 将自动重新激活他们
- 检查您的 IdP 中是否存在重复的电子邮件地址
“400 Bad Request” - 缺少必填字段
- 确保请求中包含
userName(电子邮件) - 验证电子邮件格式是否有效
- 检查您的 IdP 的属性映射配置
已创建用户但未分配产品
- 检查 SCIM 设置中是否配置了默认产品
- 验证您是否有默认产品的可用席位
- 可以在 Team Settings 中手动为用户分配产品
用户更改未同步
- 某些 IdP 按计划进行同步(例如,Azure AD 每 40 分钟同步一次)
- 尝试在您的 IdP 中强制进行手动同步
- 验证 SCIM 是否仍处于启用状态且 token 是否有效
测试连接失败
- 验证 SCIM Base URL 是否完全为
https://api.scribblemaps.com/scim/v2 - 确保没有尾随斜杠或拼写错误
- 检查您的网络/防火墙是否允许向 api.scribblemaps.com 发送出站 HTTPS 请求
需要帮助?
如果您在 SCIM 配置方面遇到问题,请联系我们的支持团队,并提供以下信息:
- 您的团队名称
- 您正在使用的身份提供商
- 来自您的 IdP 配置日志的任何错误消息
- 您的 SCIM 配置截图(已隐去 token)
我们随时为您提供帮助,为您的组织配置 SCIM 配置。
最后更新