SCIM 组 API 参考

您可以使用 SCIM 组 API 访问、创建和修改角色。

Snowflake 使用 SCIM 从 Okta、Azure AD 和自定义应用程序导入角色。这些身份提供商中的角色与 Snowflake 角色一对一映射。

角色(有时称为组)是访问权限的集合。要访问 Snowflake 中的安全对象,必须为角色分配权限,并将角色分配给其他角色或用户。

授予角色的访问权限和权利将由角色的每个成员(例如用户)自动继承。有关更多信息,请参阅 访问控制概述

用户对 Snowflake 的访问要求可能会发生变化。例如,用户可以从个人贡献者转变为组织中的经理,这可能需要更改他们在 Snowflake 中的角色,或者他们可能需要访问仅供经理使用的数据集。

随着用户在身份提供商中的角色发生变化,一旦他们的组织角色映射到相应的 Snowflake 角色,他们对 Snowflake 的访问权限就会自动更改。

HTTP 标头

Snowflake SCIM API 使用持有者令牌进行 HTTP 身份验证。

向 Snowflake SCIM API 发出的每个 HTTP 请求都支持以下 HTTP 标头:

标头

:code:`Authorization`(必填)

Bearer <access_token>

Content-Type

application/scim+json

Accept-Encoding

utf-8

Accept-Charset

utf-8

组属性

您可以在 API 请求正文中以 JSON 格式的键值对形式指定组(即角色)属性。这些键值对包含有关组的信息,例如组的显示名称。身份提供商可以为每个属性指定自己的键名。

Snowflake 支持角色生命周期管理的以下 SCIM 属性。除非另有说明,否则属性可写。

SCIM 组属性

Snowflake 组属性

类型

描述

id

id

字符串

Snowflake 中角色的不可变唯一标识符 (GUID)。

Snowflake 不返回此值。

您可以通过调用 Information Schema 表函数 REST_EVENT_HISTORY 来查找此值。检查 IdP 日志以确保值匹配。

displayName

name

字符串

引用组时,用户界面中显示的文本。

members.value

不适用

字符串

作为角色成员的用户的 id

schemas

不适用

字符串

表示命名空间 URIs 的字符串数组。例如 urn:ietf:params:scim:schemas:core:2.0:Group

按 displayName 获取有关组的详细信息

方法和端点:

GET /scim/v2/Groups?filter=displayName eq "{{group_name}}"

描述:

返回与 displayName 查询参数关联的组的详细信息。

如果 HTTP 请求已成功完成,返回 HTTP 响应状态码 200

按 groupId 获取有关组的详细信息

方法和端点:

GET /scim/v2/Groups/{{group_id}}

描述:

返回与 group_id 路径参数关联的组的详细信息。

如果 HTTP 请求已成功完成,返回 HTTP 响应状态码 200

创建组

方法和端点:

POST /scim/v2/Groups

描述:

在 Snowflake 中创建一个新组。

如果 HTTP 请求已成功完成,返回 HTTP 响应状态码 201

示例:

使用 displayName scim_test_group2 创建组:

{
  "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
  "displayName":"scim_test_group2"
}
Copy

更新组

方法和端点:

PATCH /scim/v2/Groups/{{group_id}}

描述:

更新与 group_id 路径参数关联的组的显示名称属性或组成员身份。

您必须将 op 设置为 addreplace,以执行此 HTTP 请求。

如果 HTTP 请求已成功完成,返回 HTTP 响应状态码 200

如果不成功,则返回 HTTP 响应代码 204

示例:

更新组 displayName,移除成员并添加成员:

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [{
    "op": "replace",
    "value": { "displayName": "updated_name" }
  },
  {
    "op" : "remove",
    "path": "members[value eq \"user_id_1\"]"
  },
  {
    "op": "add",
    "value": [{ "value": "user_id_2" }]
  }]
}
Copy

删除组

方法和端点:

DELETE /scim/v2/Groups/{{group_id}}

描述:

删除与 group_id 路径参数关联的组。

语言: 中文