SAML API
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 SAML 기능과 상호 작용합니다. 그룹의 모든 SAML ID를 나열합니다. 성공하면 200과 다음 응답 속성을 반환합니다: SAML ID의 extern_uid 필드를 업데이트합니다: Users API를 사용하여 단일 SAML ID를 가져옵니다.
히스토리
이 API를 사용하여 SAML 기능과 상호 작용합니다.
GitLab.com 엔드포인트#
그룹의 모든 SAML ID 나열#
GET /groups/:id/saml/identities
그룹의 모든 SAML ID를 나열합니다.
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
성공하면 200과 다음 응답 속성을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
extern_uid |
문자열 | 사용자의 외부 UID |
user_id |
문자열 | 사용자의 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 |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
uid |
문자열 | 예 | 사용자의 외부 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 필드 업데이트#
SAML ID의 extern_uid 필드를 업데이트합니다:
| SAML IdP 속성 | GitLab 필드 |
|---|---|
id/externalId |
extern_uid |
PATCH /groups/:id/saml/:uid
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
uid |
문자열 | 예 | 사용자의 외부 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 |
정수 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
uid |
문자열 | 예 | 사용자의 외부 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 그룹 링크#
히스토리
- 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에서 일반 가용성. 기능 플래그custom_roles_for_saml_group_links제거.provider파라미터가 GitLab 18.2에서 도입.
REST API를 사용하여 SAML 그룹 링크를 나열, 가져오기, 추가, 삭제합니다.
모든 SAML 그룹 링크 나열#
그룹의 모든 SAML 그룹 링크를 나열합니다.
GET /groups/:id/saml_group_links
지원되는 속성:
| 속성 | 유형 | 필수 | 설명 |
|---|---|---|---|
id |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
성공하면 200과 다음 응답 속성을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
[].name |
문자열 | SAML 그룹의 이름. |
[].access_level |
정수 | SAML 그룹 구성원의 기본 액세스 수준. 가능한 값: 0 (액세스 없음), 5 (최소 액세스), 10 (게스트), 15 (플래너), 20 (리포터), 25 (보안 관리자), 30 (개발자), 40 (메인테이너), 50 (소유자). |
[].member_role_id |
정수 | SAML 그룹 구성원의 멤버 역할 ID(member_role_id). |
[].provider |
문자열 | 이 그룹 링크가 적용되려면 일치해야 하는 고유한 공급자 이름. |
요청 예시:
curl \
--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 |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
saml_group_name |
문자열 | 예 | SAML 그룹의 이름. |
provider |
문자열 | 아니오 | 같은 이름으로 여러 링크가 있을 때 명확히 하기 위한 고유한 공급자 이름. 동일한 saml_group_name으로 여러 링크가 있을 때 필수. |
성공하면 200과 다음 응답 속성을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
name |
문자열 | SAML 그룹의 이름. |
access_level |
정수 | SAML 그룹 구성원의 기본 액세스 수준. 가능한 값: 0 (액세스 없음), 5 (최소 액세스), 10 (게스트), 15 (플래너), 20 (리포터), 25 (보안 관리자), 30 (개발자), 40 (메인테이너), 50 (소유자). |
member_role_id |
정수 | SAML 그룹 구성원의 멤버 역할 ID(member_role_id). |
provider |
문자열 | 이 그룹 링크가 적용되려면 일치해야 하는 고유한 공급자 이름. |
동일한 이름이지만 다른 공급자를 가진 여러 SAML 그룹 링크가 있고 provider 파라미터가 지정되지 않은 경우, 명확성을 위해 provider 파라미터가 필요하다는 오류 메시지와 함께 422를 반환합니다.
요청 예시:
curl \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/groups/1/saml_group_links/saml-group-1"
공급자 파라미터가 있는 요청 예시:
curl \
--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 |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
saml_group_name |
문자열 | 예 | SAML 그룹의 이름. |
access_level |
정수 | 예 | SAML 그룹 구성원의 기본 액세스 수준. 가능한 값: 0 (액세스 없음), 5 (최소 액세스), 10 (게스트), 15 (플래너), 20 (리포터), 25 (보안 관리자), 30 (개발자), 40 (메인테이너), 50 (소유자). |
member_role_id |
정수 | 아니오 | SAML 그룹 구성원의 멤버 역할 ID(member_role_id). |
provider |
문자열 | 아니오 | 이 그룹 링크가 적용되려면 일치해야 하는 고유한 공급자 이름. |
성공하면 201과 다음 응답 속성을 반환합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
name |
문자열 | SAML 그룹의 이름. |
access_level |
정수 | SAML 그룹 구성원의 기본 액세스 수준. 가능한 값: 0 (액세스 없음), 5 (최소 액세스), 10 (게스트), 15 (플래너), 20 (리포터), 25 (보안 관리자), 30 (개발자), 40 (메인테이너), 50 (소유자). |
member_role_id |
정수 | SAML 그룹 구성원의 멤버 역할 ID(member_role_id). |
provider |
문자열 | 이 그룹 링크가 적용되려면 일치해야 하는 고유한 공급자 이름. |
요청 예시:
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 |
정수 또는 문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로. |
saml_group_name |
문자열 | 예 | SAML 그룹의 이름. |
provider |
문자열 | 아니오 | 같은 이름으로 여러 링크가 있을 때 명확히 하기 위한 고유한 공급자 이름. 동일한 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"
공급자 파라미터가 있는 요청 예시:
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 상태 코드를 반환합니다.
동일한 이름이지만 다른 공급자를 가진 여러 SAML 그룹 링크가 있고 provider 파라미터가 지정되지 않은 경우, 명확성을 위해 provider 파라미터가 필요하다는 오류 메시지와 함께 422를 반환합니다.
