SAML API
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
이 API를 사용하여 SAML 기능을 다룹니다. 그룹의 모든 SAML ID를 나열합니다. 요청이 성공하면 200을 반환하며, 다음과 같은 응답 속성을 포함합니다. SAML ID의 extern_uid 필드를 업데이트합니다.
이 API를 사용하여 SAML 기능을 다룹니다.
GitLab.com 엔드포인트#
그룹의 모든 SAML ID 나열#
GET /groups/:id/saml/identities
그룹의 모든 SAML ID를 나열합니다.
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
요청이 성공하면 200을 반환하며, 다음과 같은
응답 속성을 포함합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
extern_uid |
string | 사용자의 외부 UID |
user_id |
string | 사용자의 ID |
요청 예시:
curl --location --request GET \
--header "PRIVATE-TOKEN: " \
--url "https://gitlab.com/api/v4/groups/33/saml/identities"
응답 예시:
[
{
"extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
"user_id": 48
}
]
단일 SAML ID 조회#
단일 SAML ID를 조회합니다.
GET /groups/:id/saml/:uid
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
uid |
string | 예 | 사용자의 외부 UID 입니다. |
요청 예시:
curl --location --request GET \
--header "PRIVATE-TOKEN: " \
--url "https://gitlab.com/api/v4/groups/33/saml/yrnZW46BrtBFqM7xDzE7dddd"
응답 예시:
{
"extern_uid": "yrnZW46BrtBFqM7xDzE7dddd",
"user_id": 48
}
SAML ID의 extern_uid 필드 업데이트#
히스토리
- GitLab 19.4에서 ID를 신뢰할 수 없음으로 표시하거나 이메일 알림을 보내지 않도록 변경되었습니다.
SAML ID의 extern_uid 필드를 업데이트합니다.
| SAML IdP(ID 공급자) 속성 | GitLab 필드 |
|---|---|
id/externalId |
extern_uid |
PATCH /groups/:id/saml/:uid
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
uid |
string | 예 | 사용자의 외부 UID 입니다. |
요청 예시:
curl --request PATCH \
--location \
--header "PRIVATE-TOKEN: " \
--url "https://gitlab.com/api/v4/groups/33/saml/yrnZW46BrtBFqM7xDzE7dddd" \
--form "extern_uid=be20d8dcc028677c931e04f387"
단일 SAML ID 삭제#
DELETE /groups/:id/saml/:uid
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
uid |
string | 예 | 사용자의 외부 UID 입니다. |
요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.com/api/v4/groups/33/saml/be20d8dcc028677c931e04f387"
응답 예시:
{
"message" : "204 No Content"
}
GitLab Self-Managed 엔드포인트#
단일 SAML ID 조회#
Users API를 사용하여 단일 SAML ID를 조회합니다.
SAML ID의 extern_uid 필드 업데이트#
Users API를 사용하여 사용자의 extern_uid 필드를 업데이트합니다.
단일 SAML ID 삭제#
Users API를 사용하여 사용자의 단일 ID를 삭제합니다.
SAML 그룹 링크#
히스토리
provider매개변수가 GitLab 18.2에서 도입되었습니다.
REST API를 사용하여 SAML 그룹 링크를 나열, 조회, 추가, 삭제합니다.
모든 SAML 그룹 링크 나열#
그룹의 모든 SAML 그룹 링크를 나열합니다.
GET /groups/:id/saml_group_links
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
요청이 성공하면 200을 반환하며, 다음과 같은 응답 속성을 포함합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
[].name |
string | SAML 그룹의 이름입니다. |
[].access_level |
integer | SAML 그룹 멤버의 기본 액세스 레벨입니다. 가능한 값: 0(No access), 5(Minimal access), 10(Guest), 15(Planner), 20(Reporter), 25(Security Manager), 30(Developer), 40(Maintainer), 50(Owner). |
[].member_role_id |
integer | SAML 그룹 멤버의 멤버 역할 ID(member_role_id)입니다. |
[].provider |
string | 이 그룹 링크가 적용되려면 일치해야 하는 고유 공급자 이름입니다. |
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
응답 예시:
[
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12,
"provider": null
},
{
"name": "saml-group-2",
"access_level": 40,
"member_role_id": 99,
"provider": "saml_provider_1"
}
]
SAML 그룹 링크 조회#
그룹의 SAML 그룹 링크를 조회합니다.
GET /groups/:id/saml_group_links/:saml_group_name
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
saml_group_name |
string | 예 | SAML 그룹의 이름입니다. |
provider |
string | 아니요 | 이름이 같은 링크가 여러 개 있을 때 이를 구분하기 위한 고유 공급자 이름입니다. 같은 saml_group_name을 가진 링크가 여러 개 있으면 필수입니다. |
요청이 성공하면 200을 반환하며, 다음과 같은 응답 속성을 포함합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
name |
string | SAML 그룹의 이름입니다. |
access_level |
integer | SAML 그룹 멤버의 기본 액세스 레벨입니다. 가능한 값: 0(No access), 5(Minimal access), 10(Guest), 15(Planner), 20(Reporter), 25(Security Manager), 30(Developer), 40(Maintainer), 50(Owner). |
member_role_id |
integer | SAML 그룹 멤버의 멤버 역할 ID(member_role_id)입니다. |
provider |
string | 이 그룹 링크가 적용되려면 일치해야 하는 고유 공급자 이름입니다. |
이름이 같고 공급자가 다른 SAML 그룹 링크가 여러 개 있는 상태에서 provider 매개변수를 지정하지 않으면, 구분을 위해 provider 매개변수가 필요하다는 오류 메시지와 함께 422를 반환합니다.
요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"
provider 매개변수를 사용한 요청 예시:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1?provider=saml_provider_1"
응답 예시:
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12,
"provider": "saml_provider_1"
}
SAML 그룹 링크 추가#
그룹에 SAML 그룹 링크를 추가합니다.
POST /groups/:id/saml_group_links
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
saml_group_name |
string | 예 | SAML 그룹의 이름입니다. |
access_level |
integer | 예 | SAML 그룹 멤버의 기본 액세스 레벨입니다. 가능한 값: 0(No access), 5(Minimal access), 10(Guest), 15(Planner), 20(Reporter), 25(Security Manager), 30(Developer), 40(Maintainer), 50(Owner). |
member_role_id |
integer | 아니요 | SAML 그룹 멤버의 멤버 역할 ID(member_role_id)입니다. |
provider |
string | 아니요 | 이 그룹 링크가 적용되려면 일치해야 하는 고유 공급자 이름입니다. |
요청이 성공하면 201을 반환하며, 다음과 같은 응답 속성을 포함합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
name |
string | SAML 그룹의 이름입니다. |
access_level |
integer | SAML 그룹 멤버의 기본 액세스 레벨입니다. 가능한 값: 0(No access), 5(Minimal access), 10(Guest), 15(Planner), 20(Reporter), 25(Security Manager), 30(Developer), 40(Maintainer), 50(Owner). |
member_role_id |
integer | SAML 그룹 멤버의 멤버 역할 ID(member_role_id)입니다. |
provider |
string | 이 그룹 링크가 적용되려면 일치해야 하는 고유 공급자 이름입니다. |
요청 예시:
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>, "provider": "<your_provider>" }' \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links"
응답 예시:
{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12,
"provider": "saml_provider_1"
}
SAML 그룹 링크 삭제#
그룹의 SAML 그룹 링크를 삭제합니다.
DELETE /groups/:id/saml_group_links/:saml_group_name
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 그룹의 ID 또는 URL 인코딩된 경로입니다. |
saml_group_name |
string | 예 | SAML 그룹의 이름입니다. |
provider |
string | 아니요 | 이름이 같은 링크가 여러 개 있을 때 이를 구분하기 위한 고유 공급자 이름입니다. 같은 saml_group_name을 가진 링크가 여러 개 있으면 필수입니다. |
요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"
provider 매개변수를 사용한 요청 예시:
curl --request DELETE \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1?provider=saml_provider_1"
요청이 성공하면 응답 본문 없이 204 상태 코드를 반환합니다.
요청이 실패하면 응답 본문에 오류 메시지를 담아 400 상태 코드를 반환합니다.
이름이 같고 공급자가 다른 SAML 그룹 링크가 여러 개 있는 상태에서 provider 매개변수를 지정하지 않으면, 구분을 위해 provider 매개변수가 필요하다는 오류 메시지와 함께 422를 반환합니다.