SAML API

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

SAML 기능에 접근하기 위한 API입니다.

GitLab.com 엔드포인트

그룹의 SAML ID 가져오기

GET /groups/:id/saml/identities  

그룹의 SAML ID를 가져옵니다.

지원되는 속성:

Attribute Type Required Description
id integer/string yes 그룹의 ID 또는 URL-encoded path

성공적으로 요청되면 200과 다음 응답 속성이 반환됩니다:

Attribute Type Description
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 ID 가져오기

GET /groups/:id/saml/:uid  

지원되는 속성:

Attribute Type Required Description
id integer/string yes 그룹의 ID 또는 URL-encoded path
uid string yes 사용자의 외부 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 ID의 extern_uid 필드 업데이트

SAML ID의 extern_uid 필드를 업데이트합니다:

SAML IdP 속성 GitLab 필드
id/externalId extern_uid
PATCH /groups/:id/saml/:uid  

지원되는 속성:

Attribute Type Required Description
id integer/string yes 그룹의 ID 또는 URL-encoded path
uid string yes 사용자의 외부 UID.

예시 요청:

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

SAML IDENTITY 단일 삭제

DELETE /groups/:id/saml/:uid

지원하는 속성:

속성 타입 필수 설명
id 정수 그룹의 ID 또는 URL-인코딩 경로.
uid 문자열 사용자의 외부 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 IDENTITY 가져오기

Users API를 사용하여 단일 SAML IDENTITY 가져오기.

SAML IDENTITY의 extern_uid 필드 업데이트

Users API를 사용하여 사용자의 extern_uid 필드 업데이트.

단일 SAML IDENTITY 삭제

Users API를 사용하여 사용자의 단일 IDENTITY 삭제.

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가 제거됨.

REST API를 사용하여 SAML 그룹 링크를 나열, 가져오기, 추가 및 삭제합니다.

SAML 그룹 링크 나열

그룹의 SAML 그룹 링크를 나열합니다.

GET /groups/:id/saml_group_links

지원하는 속성:

속성 타입 필수 설명
id 정수/문자열 그룹의 ID 또는 URL-인코딩 경로.

성공할 경우 200를 반환하며, 다음 응답 속성이 포함됩니다:

속성 타입 설명
[].name 문자열 SAML 그룹의 이름.
[].access_level 정수 SAML 그룹의 구성원에 대한 역할(access_level). 이 속성은 GitLab 15.3.0부터 GitLab 15.3.3까지 문자열 타입이었습니다.
[].member_role_id 정수 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까지 문자열 유형이었습니다.
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까지 문자열 유형이었습니다.
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 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로입니다.
saml_group_name 문자열 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 상태 코드를 반환합니다.