{{< details >}}

  • Tier: 专业版, 旗舰版
  • Offering: JihuLab.com, 私有化部署

{{< /details >}}

{{< history >}}

  • 引入于极狐GitLab 15.5。

{{< /history >}}

使用此 API 与 SAML 功能交互。

极狐GitLab.com 端点

获取群组的 SAML 身份

GET /groups/:id/saml/identities

获取群组的 SAML 身份。

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径

成功时,返回 200 和以下响应属性:

属性 类型 描述
extern_uid string 用户的外部 UID
user_id string 用户的 ID

示例请求:

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

示例响应:

[
    {
        "extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
        "user_id": 48
    }
]

获取单个 SAML 身份

{{< history >}}

  • 引入于极狐GitLab 16.1。

{{< /history >}}

GET /groups/:id/saml/:uid

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径
uid string 用户的外部 UID

示例请求:

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

示例响应:

{
    "extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
    "user_id": 48
}

更新 SAML 身份的 extern_uid 字段

更新 SAML 身份的 extern_uid 字段:

SAML IdP 属性 极狐GitLab 字段
id/externalId extern_uid
PATCH /groups/:id/saml/:uid

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径
uid string 用户的外部 UID

示例请求:

curl --location --request PATCH "https://gitlab.com/api/v4/groups/33/saml/yrnZW46BrtBFqM7xDzE7dddd" \
--header "PRIVATE-TOKEN: <PRIVATE TOKEN>" \
--form "extern_uid=be20d8dcc028677c931e04f387"

删除单个 SAML 身份

{{< history >}}

  • 引入于极狐GitLab 16.5。

{{< /history >}}

DELETE /groups/:id/saml/:uid

支持的属性:

属性 类型 必须 描述
id integer 群组的 ID 或 URL 编码路径
uid string 用户的外部 UID

示例请求:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.com/api/v4/groups/33/saml/be20d8dcc028677c931e04f387"

示例响应:

{
    "message" : "204 No Content"
}

极狐GitLab 私有化部署端点

获取单个 SAML 身份

使用用户 API 获取单个 SAML 身份

更新 SAML 身份的 extern_uid 字段

使用用户 API 更新用户的 extern_uid 字段

删除单个 SAML 身份

使用用户 API 删除用户的单个身份

SAML 群组链接

{{< history >}}

  • 引入于极狐GitLab 15.3.0。
  • access_level 类型在极狐GitLab 15.3.3 中发生变更,从 stringinteger
  • member_role_id 类型在极狐GitLab 16.7 中引入,使用名为 custom_roles_for_saml_group_links功能标志。默认禁用。
  • member_role_id 类型在极狐GitLab 16.8 中 GA。功能标志 custom_roles_for_saml_group_links 被移除。

{{< /history >}}

使用 REST API 列出、获取、添加和删除 SAML 群组链接

列出 SAML 群组链接

列出群组的 SAML 群组链接。

GET /groups/:id/saml_group_links

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径

成功时,返回 200 和以下响应属性:

属性 类型 描述
[].name string SAML 群组的名称
[].access_level integer SAML 群组成员的 角色 (access_level) 。从极狐GitLab 15.3.0 到极狐GitLab 15.3.3 属性类型为 string。
[].member_role_id integer SAML 群组成员的 成员角色 ID (member_role_id)

示例请求:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links"

示例响应:

[
  {
    "name": "saml-group-1",
    "access_level": 10,
    "member_role_id": 12
  },
  {
    "name": "saml-group-2",
    "access_level": 40,
    "member_role_id": 99
  }
]

获取 SAML 群组链接

获取群组的 SAML 群组链接。

GET /groups/:id/saml_group_links/:saml_group_name

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径
saml_group_name string SAML 群组的名称

成功时,返回 200 和以下响应属性:

属性 类型 描述
name string SAML 群组的名称
access_level integer SAML 群组成员的 角色 (access_level) 。从极狐GitLab 15.3.0 到极狐GitLab 15.3.3 属性类型为 string。
member_role_id integer SAML 群组成员的 成员角色 ID (member_role_id)

示例请求:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"

示例响应:

{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
}

添加 SAML 群组链接

为群组添加 SAML 群组链接。

POST /groups/:id/saml_group_links

支持的属性:

属性 类型 必须 描述
id integer or string 群组的 ID 或 URL 编码路径
saml_group_name string SAML 群组的名称
access_level integer SAML 群组成员的 角色 (access_level)
member_role_id integer SAML 群组成员的 成员角色 ID (member_role_id)

成功时,返回 201 和以下响应属性:

属性 类型 描述
name string SAML 群组的名称
access_level integer SAML 群组成员的 角色 (access_level) 。从极狐GitLab 15.3.0 到极狐GitLab 15.3.3 属性类型为 string。
member_role_id integer SAML 群组成员的 成员角色 ID (member_role_id)

示例请求:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --header "Content-Type: application/json" --data '{ "saml_group_name": "<your_saml_group_name`>", "access_level": <chosen_access_level>, "member_role_id": <chosen_member_role_id> }' --url  "https://gitlab.example.com/api/v4/groups/1/saml_group_links"

示例响应:

{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
}

删除 SAML 群组链接

删除群组的 SAML 群组链接。

DELETE /groups/:id/saml_group_links/:saml_group_name

支持的属性:

属性 类型 必须 描述
id integer/string 群组的 ID 或 URL 编码路径
saml_group_name string SAML 群组的名称

示例请求:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"

成功时,返回 204 状态码,无响应正文。