{{< 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 中发生变更,从string
到integer
。 -
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
状态码,无响应正文。