使用 SCIM 配置用户和群组
你可以使用跨域身份管理系统 (SCIM) API 标准在 Notion 工作空间中配置和管理用户与群组 🔑
注意: 此功能仅适用于企业版用户。
Notion 的 SCIM API 允许你执行以下操作:
用户配置与管理
在工作空间中创建和移除成员。
更新成员的档案信息。
检索工作空间中的成员。
通过(电子)邮件或姓名查找成员。
群组配置与管理
在工作空间中创建和移除群组。
在群组中添加和移除成员。
检索工作空间中的群组。
按名称查找群组。
注意:目前,你无法使用 Notion 的 SCIM API 管理工作空间访客。
我们目前支持 Okta、OneLogin、Rippling 和自定义 SCIM 应用程序。如果你使用其他身份提供商,请告知我们。查看特定应用程序的身份提供商设置指令 此处 →
Notion SCIM 的前置要求
要将 SCIM 与 Notion 配合使用:
您的工作区必须使用企业版。
你的身份提供商 (IdP) 必须支持 SAML 2.0 协议。查看特定应用程序的身份提供商设置指令 此处 →
工作空间所有者必须为 Notion 工作空间配置 SCIM。
如果你想使用 SCIM 修改用户的姓名或(电子)邮件地址,则必须验证对邮件域名的所有权。了解更多关于域名验证的信息 →
生成你的 SCIM API 令牌
只有企业版 组织所有者 才能生成和查看 SCIM API 令牌。若要创建 SCIM API 令牌:
打开工作空间切换(器)并选择
管理组织。如果您尚未设置组织,可能需要先执行设置组织。点击 here → 了解更多。在你的组织级控件的
常规选项卡中,选择SCIM 配置旁边的>。
注意:对于你想通过 SCIM 管理的每个工作空间,必须生成一个单独的 SCIM API 令牌。
撤销令牌
当工作空间所有者离开工作空间或其角色发生变更时,其令牌将被撤销。发生这种情况时,系统会自动向其余工作空间所有者发送消息,通知他们替换已撤销的令牌。
此外,任何工作空间所有者均可撤销工作空间中的活动令牌。若要撤销令牌,请点击相应令牌旁边的 🗑。
替换现有令牌
如果令牌被撤销,您需要在任何现有集成中对其进行替换。
任何依赖于已撤销令牌的 SCIM 集成和用户配置的操作都将被禁用,直到其被活动令牌替换为止。
注意:为避免中断现有集成,请确保在取消配置管理员之前替换所有与该管理员关联的令牌。
禁止发送邀请(电子)邮件
若要控制用户在通过 SCIM 进行配置时是否会通过(电子)邮件收到工作空间和群组的邀请,企业版组织所有者可以:
打开工作空间切换(器)并选择
管理组织。在
常规选项卡中,如果你不想向用户发送(电子)邮件,请启用禁止 SCIM 配置发送邀请(电子)邮件。
通过 SCIM 配置受限成员
若要通过 SCIM 配置 受限成员,您必须将 SCIM 的“role”属性设置为“restricted_member”:
\"urn:ietf:params:scim:schemas:extension:notion:2.0:User\": { role: string // \"owner\" | \"membership_admin\" | \"member\" | \"restricted_member\" }
若要通过 SCIM 将页面访客转换为受限成员,你必须使用 POST /scim/v2/Users。
GET /ServiceProviderConfigGET检索可用 SCIM 规范功能的描述。
定义于 SCIM 协议规范第 5 节。
GET /ResourceTypesGET检索可用 SCIM 资源类型的列表。
定义于 SCIM 协议规范第 6 节。
下表概述了 SCIM 用户属性与 Notion 用户档案字段之间的映射。组织所有者可以选择要发送给 Notion 的属性,并可随时更新这些属性。Notion 会处理你通过 Notion SCIM API 发送的属性,以改善配置和管理用户及群组的体验。
SCIM 属性 | Notion 用户档案字段 | 外部命名空间 |
|---|---|---|
userName | 电子邮件(此项必填) |
|
name.formatted | 姓名(推荐的姓名字段。由于 Notion 只有一个姓名字段,你可以在 Okta 中创建一个表达式来组合任何姓名字段。) |
|
name.familyName | 姓名(可与 name.givenName 结合使用,作为 name.formatted 的替代方案。) |
|
name.givenName | 姓名(可与 name.familyName 结合使用,作为 name.formatted 的替代方案。) |
|
照片 | 档案照片 |
|
职称 | 标题 |
|
phoneNumbers | 电话号码 |
|
地址 | 地址 |
|
角色 | 角色 |
|
区域设置 | 区域设置 |
|
首选语言 | 首选语言 |
|
userType | 用户类型 |
|
电子邮件 | 电子邮件地址 |
|
已启用 | 活跃 |
|
manager.value | 经理(这应该是一个电子邮件地址) |
|
manager.displayName | 经理 |
|
部门 | 部门 |
|
部门 | 部门 |
|
costCenter | 成本中心 |
|
组织 | 组织 |
|
employeeNumber | 员工编号 |
|
职位 | Notion 工作空间角色(“owner” | “membership_admin” | “member”) |
|
注意: Notion 仅存储 primary=true 的第一个 phoneNumbers 条目。所有其他条目都将被丢弃。type 字段会被完全忽略。请注意,primary 不属于 SCIM 2.0 规范的一部分——Notion 对其处理方式与标准不同。如果没有条目设置了 primary=true,则不会存储任何电话号码。
GET /UsersGET检索工作空间成员的分页列表。
你可以使用
startIndex和count参数进行分页。请注意,startIndex从 1 开始计数,count 最大值为 100。你可以使用
filter参数过滤结果。可用于过滤的有效属性包括email、given_name和family_name,例如GET。请注意,
given_name和family_name区分大小写。电子邮件会被转换为小写。
GET /Users/GET通过 Notion 用户 ID 检索特定的工作空间成员。这将是一个 32 字符的 UUID,格式如下:
00000000-0000-0000-0000-000000000000。请注意,
meta.created和meta.lastModified不反映有意义的时间戳值。
POST /UsersPOST如果你要添加的用户已经拥有相同电子邮件的 Notion 用户帐户,则他们将被添加到你的工作空间中。
如果用户不存在,调用此接口将创建一个新的 Notion 用户,并将该用户添加到你的工作空间中;随后,他们会映射到所创建的 Notion 用户档案。
SCIM API 将在创建用户时读取档案照片属性,但在后续更新时不会读取。
PATCH /Users/PATCH通过一系列操作进行更新,并返回更新后的用户记录。
注意:只有在验证了用户(电子)邮件域所有权后,你才能更新成员的档案信息(这通常与为 Notion 配置 SAML 单点登录所用的(电子)邮件域相同)。请按照此处的指令验证你的域 →
PUT /Users/PUT更新,并返回更新后的用户记录。
DELETE /Users/DELETE从你的工作空间中删除用户。该用户将从所有活动会话中注销。
无法通过 SCIM 删除用户帐户。帐户删除必须手动完成。
你也可以通过发送
PATCH /Users/或PUT /Users/请求,将active用户属性设置为false,从而将用户从你的工作空间中移除。创建 SCIM 机器人令牌的工作空间所有者无法通过 API 移除。当工作空间所有者通过 SCIM API 被移除时,他们创建的任何令牌都会被撤销,且使用该机器人的任何集成都将中断。
注意:你可以使用 role 属性为 用户 分配工作空间级别,该属性是现有用户架构的扩展。格式如下:
\"urn:ietf:params:scim:schemas:extension:notion:2.0:User\": { role: string // \"owner\" | \"membership_admin\" | \"member\" }
GET /GroupsGET检索工作空间群组的分页列表。
你可以使用
startIndex和count参数进行分页。请注意,startIndex从 1 开始计数,count 的最大值为 100,例如GET。如果不使用分页,单次请求最多返回 100 个工作空间群组。
你可以使用
filter参数过滤结果。群组可以按其displayName属性进行过滤,例如GET。
GET /Groups/GET通过 Notion 群组 ID 检索特定的工作空间群组。该 ID 为一个 32 字符的 UUID,格式如下:
00000000-0000-0000-0000-000000000000。
POST /GroupsPOST创建新工作空间群组。
PATCH /Groups/PATCH通过一系列操作更新工作空间群组。
PUT /Groups/PUT更新工作空间群组。
DELETE /Groups/DELETE删除工作空间群组。
注意:如果删除群组会导致无人对一个或多个页面拥有全部权限,则禁止删除该群组。
