SAML API
- 引入于极狐GitLab 15.5。
访问 SAML 功能的 API。
JihuLab.com 端点
获取群组的 SAML 身份
GET /groups/:id/saml/identities
获取群组的 SAML 身份。
支持的参数:
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer/string | Yes | 群组 ID 或 URL 编码的路径 |
如果成功,则返回 200
和以下响应参数:
参数 | 类型 | 描述 |
---|---|---|
extern_uid |
string | 用户的外部 UID |
user_id |
string | 用户 ID |
请求示例:
curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/saml/identities" --header "PRIVATE-TOKEN: <PRIVATE-TOKEN>"
响应示例:
[
{
"extern_uid": "4",
"user_id": 48
}
]
获取单个 SAML 身份
- 引入于极狐GitLab 16.1。
GET /groups/:id/saml/:uid
支持的参数:
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer/string | yes | 群组 ID 或 URL 编码的路径 |
uid |
string | yes | 用户的外部 UID |
请求示例:
curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/saml/sydney_jones" --header "PRIVATE-TOKEN: <PRIVATE TOKEN>"
响应示例:
{
"extern_uid": "4",
"user_id": 48
}
更新 SAML 身份的 extern_uid
字段
更新 SAML 身份的 extern_uid
字段。
SAML IdP 参数 | 极狐GitLab 字段 |
---|---|
id/externalId |
extern_uid |
PATCH /groups/:id/saml/:uid
支持的参数:
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer/string | yes | 群组 ID 或 URL 编码的路径 |
uid |
string | yes | 用户的外部 UID |
请求示例:
curl --location --request PATCH "https://gitlab.example.com/api/v4/groups/33/saml/sydney_jones" \
--header "PRIVATE-TOKEN: <PRIVATE TOKEN>" \
--form "extern_uid=sydney_jones_new"
删除单个 SAML 身份识别
使用用户 API 来删除单个用户的身份识别。
SAML 群组链接
- 引入于极狐GitLab 15.3.0。
- 在极狐GitLab 15.3.3 中,
access_level
类型从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
被移除。
通过使用 REST API 来列举、获取、增加和删除SAML 群组链接。
列出 SAML 群组链接
列出群组的 SAML 群组链接。
GET /groups/:id/saml_group_links
支持的属性:
属性 | 类型 | 是否必需 | 描述 |
---|---|---|---|
id |
integer/string | yes | ID 或 URL 编码的群组路径](rest/index.md#namespaced-paths)。 |
如果成功,返回 200
和以下响应属性:
属性 | 类型 | 描述 |
---|---|---|
[].name |
string | SAML 群组的名称。 |
[].access_level |
integer | SAML 群组成员的角色 (access_level )。从极狐GitLab 15.3.0 到 15.3.3,该属性有一个字符类型。 |
[].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 | yes | ID 或 URL 编码的群组路径。 |
saml_group_name |
string | yes | SAML 群组的名称。 |
如果成功,返回 200
和以下响应属性:
属性 | 类型 | 描述 | |
---|---|---|---|
name |
string | SAML 群组的名称。 | |
access_level |
integer | SAML 群组成员的角色 (access_level )。从极狐GitLab 15.3.0 到 15.3.3,该属性有一个字符类型。 |
|
member_role_id |
integer | no | 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 | yes | ID 或 URL 编码的群组路径。 |
saml_group_name |
string | yes | SAML 群组的名称。 |
access_level |
integer | yes | SAML 群组的成员 角色 (access_level )。 |
member_role_id |
integer | no | SAML 群组的成员角色 ID (member_role_id )。 |
如果成功,返回 201
和以下响应属性:
属性 | 类型 | 描述 | |
---|---|---|---|
name |
string | SAML 群组的名称。 | |
access_level |
integer | SAML 群组成员的角色 (access_level )。从极狐GitLab 15.3.0 到 15.3.3,该属性有一个字符类型。 |
|
member_role_id |
integer | no | 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 | yes | ID 或 URL 编码的群组路径。 |
saml_group_name |
string | yes | 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
状态码,而且没有任何响应体。