SCIM 用户 API 参考¶
您可以使用 SCIM 用户 API 来访问、创建和修改用户数据。
HTTP 标头¶
Snowflake SCIM API 使用持有者令牌进行 HTTP 身份验证。
向 Snowflake SCIM API 发出的每个 HTTP 请求都支持以下 HTTP 标头:
标头 |
值 |
|---|---|
:code:`Authorization`(必填) |
|
|
|
|
|
|
|
用户属性¶
您可以在 API 请求正文中以 JSON 格式的键值对形式指定用户属性。这些对包含有关用户的信息,例如用户的显示名称或其电子邮件地址。身份提供商可以为每个属性指定自己的键名。例如,身份提供商可以使用 lastName 键取代 familyName,来标识用户的姓氏。Snowflake 不支持多值用户属性。
重要
下表中的 userName 和 loginName 属性均引用 userName 属性。Snowflake 支持为 userName 和 loginName 属性指定不同的值。
Snowflake 支持以下属性用于用户生命周期管理。
SCIM 用户属性 |
Snowflake 用户属性 |
类型 |
描述 |
|---|---|---|---|
|
|
字符串 |
Snowflake 中用户不可变的唯一标识符 (GUID)。 Snowflake 不会在 DESCRIBE USER 或 SHOW USERS 输出中返回此值。 对于需要此属性的端点上的请求,例如 |
|
|
字符串 |
用于登录到 Snowflake 的标识符。有关这些属性的更多信息,请参阅 CREATE USER。 |
|
|
字符串 |
用户的名字。 |
|
|
字符串 |
用户的姓氏。 |
|
|
字符串 |
用户的电子邮件地址。 |
|
|
字符串 |
提及用户时,用户界面中显示的文本。 |
|
不适用 |
字符串 |
预置客户端(例如 Azure、Okta)设置的唯一标识符。 |
|
|
字符串 |
用户的密码。 该值不会在 JSON 响应中返回。 如果 SCIM 安全集成中的 |
|
|
布尔 |
设置为 |
|
不适用 |
字符串 |
用户所属组的列表。 用户的组不可变,必须使用 SCIM 组 API 更新其成员资格。 |
|
|
字符串 |
将用户添加到 Snowflake 的时间。 |
|
|
字符串 |
上次在 Snowflake 中修改用户的时间。 |
|
不适用 |
字符串 |
用户的资源类型。您应该使用 |
|
不适用 |
字符串 |
以逗号分隔的字符串数组,用于指定命名空间 URIs。Snowflake 支持以下值:
|
自定义属性¶
您可以设置 RFC 7643 (https://datatracker.ietf.org/doc/html/rfc7643) 未定义的自定义属性,例如 defaultRole。
在执行 POST、PUT 和 PATCH 请求时,您可以使用以下命名空间来设置自定义属性:
urn:ietf:params:scim:schemas:extension:enterprise:2.0:User此命名空间是 Snowflake 中原始 SCIM 实现的一部分。在 Okta SCIM 安全集成 中,只能使用此命名空间来设置自定义属性。
在 Microsoft Azure SCIM 安全集成 或 自定义 SCIM 集成 中,您不能使用此命名空间来设置自定义属性。
urn:ietf:params:scim:schemas:extension:2.0:User您可以使用此命名空间为所有 SCIM 集成设置自定义属性。在 Microsoft Azure SCIM 安全集成 或 自定义 SCIM 安全集成 中,您必须使用此命名空间来设置自定义属性。
Snowflake 支持以下自定义属性:
SCIM 用户自定义属性 |
Snowflake 用户属性 |
类型 |
描述 |
|---|---|---|---|
|
|
字符串 |
Defines which Snowflake interfaces the user can access. Specified as a comma-delimited list of interfaces. For a list of possible interfaces, see CREATE USER. If a value other than |
|
|
字符串 |
登录时默认为用户会话激活的虚拟仓库。 |
|
|
字符串 |
登录时默认为用户会话激活的主要角色。 |
|
|
字符串 |
登录时在用户会话中处于活跃状态的辅助角色列表。您可以将此属性设置为 |
|
|
字符串 |
用户的类型。默认: |
|
|
字符串 |
Assign or update tag values associated with a user. Specify a comma-separated list of tags and tag values that are to be provisioned. These tags must already exist in the account and the integration must be properly provisioned. The format of each entry is as follows:
|
TYPE 属性的使用说明¶
备注
The LEGACY_SERVICE type is being deprecated. Use the SERVICE type for services and applications. For a timeline of the deprecation of LEGACY_SERVICE, see 为单因素密码登录的弃用做好计划.
此列表描述了设置以下 SCIM 请求中 TYPE 属性的效果:
POST请求以创建用户,并且type属性未指定或为NULL,则TYPE属性设置为PERSON。PATCHrequest with a replace operation that specifies thetypeattribute asNULL,TYPEproperty doesn't change.PUT带替换操作的请求,且type属性未指定或为NULL,则TYPE属性设置为PERSON。PATCHrequest with a remove operation that unsets thetypeattribute, theTYPEproperty doesn't change.
检查用户是否存在¶
- 方法和端点:
GET /scim/v2/Users?filter=userName eq "{{user_name}}"- 描述:
返回与
userName查询参数关联的用户的详细信息。如果 HTTP 请求已成功完成,返回 HTTP 响应状态码
200。
获取用户详情¶
- 方法和端点:
GET /scim/v2/Users/{{user_id}}- 描述:
返回与
user_id路径参数关联的用户的详细信息。如果 HTTP 请求已成功完成,返回 HTTP 响应状态码
200。
创建用户¶
- 方法和端点:
POST /scim/v2/Users- 描述:
在 Snowflake 中创建一个用户。
如果 HTTP 请求已成功完成,返回 HTTP 响应状态码
201。如果用户已存在或 HTTP 请求因不同的原因失败,Snowflake 将返回 HTTP 响应状态码
409。- 示例:
创建
userName和loginName映射到相同值的用户:创建
userName和loginName映射到不同值的用户:备注
如果您使用 Okta 作为身份提供商,请按照此 程序 操作。
Create a user and assign two tags:
cost_center = financeandtype = PowerUser:
替换用户属性¶
- 方法和端点:
PATCH /scim/v2/Users/{{id}}- 描述:
替换与
id路径参数关联的用户的属性。您必须将
op设置为replace,以执行此 HTTP 请求。active允许以下值:false:停用用户。true:激活用户。
如果 HTTP 请求已成功完成,返回 HTTP 响应状态码
200。如果不成功,则返回 HTTP 响应代码
204。- 示例:
停用用户并将其
givenName更新为deactivated_user:更新
userName和loginName映射到相同值的用户:Update a user with
userNameandloginNamemapped to different values. If Okta is your identity provider, follow this procedure instead.Update tag values assigned to a user:
更新用户¶
- 方法和端点:
PUT /scim/v2/Users/{{id}}- 描述:
更新与
id路径参数关联的用户的属性。如果不成功,则返回 HTTP 响应代码
400。如果 HTTP 请求尝试更改不可变属性,或者所更改的属性在 Snowflake 中不存在,则请求不会成功。- 示例:
更新用户及其
"defaultRole"、"defaultSecondaryRoles"和"defaultWarehouse"属性。要指定
"defaultRole"、"defaultSecondaryRoles"和"defaultWarehouse"属性,您必须使用以下extension架构 之一。defaultSecondaryRoles属性仅接受"ALL"作为一个值。备注
PUT 方法的成本比 PATCH 方法成本更高。改用 PATCH 操作。
Update a user and their tag values. Omitting a tag value or omitting the tag entirely from the request will remove the tag from the user.
删除用户¶
- 方法和端点:
DELETE /scim/v2/Users/{{id}}- 描述:
删除与
id路径参数关联的用户。