SCIM API

引入于极狐GitLab 15.5。

极狐GitLab SCIM API 管理群组内的 SCIM 身份并提供 /Users 端点。基本 URL 为 /api/scim/v2/groups/:group_path/Users/

要使用此 API,必须为群组启用群组 SSO。 此 API 仅在启用群组 SSO 的 SCIM 的情况下使用。这是创建 SCIM 身份的先决条件。

此 API 不同于内部群组 SCIM API 和实例 SCIM API:

  • 这个 API:
    • 不实现 RFC7644 协议
    • 获取、检查、更新和删除群组内的 SCIM 身份。
  • 内部群组和实例 SCIM API:
    • 用于 SCIM 提供商集成的系统。
    • 实施 RFC7644协议
    • 获取群组或实例的 SCIM 配置用户列表。
    • 为群组或实例创建、删除和更新 SCIM 配置用户。

获取群组的 SCIM 身份

引入于极狐GitLab 15.5。

GET /groups/:id/scim/identities

支持的参数:

参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的路径

如果成功,则返回 200 和以下响应参数:

参数 类型 描述
extern_uid string 用户的外部 UID
user_id integer 用户 ID
active boolean 身份状态

响应示例:

[
  {
    "extern_uid": "4",
    "user_id": 48,
    "active": true
  }
]

请求示例:

curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/scim/identities" \
--header "PRIVATE-TOKEN: <PRIVATE-TOKEN>"

获取单个 SCIM 身份

引入于极狐GitLab 16.1。

GET /groups/:id/scim/:uid

支持的参数:

参数 类型 是否必需 描述
id integer yes 群组 ID 或 URL 编码的路径
uid string yes 用户的外部 UID

请求示例:

curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/scim/sydney_jones" --header "PRIVATE-TOKEN: <PRIVATE TOKEN>"

响应示例:

{
    "extern_uid": "4",
    "user_id": 48,
    "active": true
}

更新 SCIM 身份的 extern_uid 字段

引入于极狐GitLab 15.5。

可以更新的字段为:

SCIM/IdP 字段 极狐GitLab 字段
id/externalId extern_uid
PATCH /groups/:groups_id/scim/:uid

参数:

参数 类型 是否必需 描述
id integer/string yes 群组 ID 或 URL 编码的路径
uid string yes 用户的外部 UID

请求示例:

curl --location --request PATCH "https://gitlab.example.com/api/v4/groups/33/scim/sydney_jones" \
--header "PRIVATE-TOKEN: <PRIVATE TOKEN>" \
--form "extern_uid=sydney_jones_new"

删除单个 SCIM 身份

引入于极狐GitLab 16.5。

DELETE /groups/:id/scim/:uid

支持的参数:

参数 类型 是否必须 描述
id integer yes 群组 ID 或 URL 编码的路径
uid string yes 用户的外部 UID

请求示例:

curl --request DELETE --header "Content-Type: application/json" --header "Authorization: Bearer <your_access_token>" "https://gitlab.example.com/api/v4/groups/33/scim/sydney_jones"

响应示例:

{
    "message" : "204 No Content"
}