SAML API

Tier: 프리미엄, 얼티메이트 Offering: GitLab.com, Self-managed, GitLab Dedicated

SAML 기능에 액세스하기 위한 API.

GitLab.com 엔드포인트

그룹의 SAML 식별자 가져오기

GET /groups/:id/saml/identities

그룹의 SAML 식별자를 가져옵니다.

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로

성공하면 200 및 다음 응답 속성이 반환됩니다:

속성 유형 설명
extern_uid 문자열 사용자의 외부 UID
user_id 문자열 사용자의 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 식별자 가져오기

GET /groups/:id/saml/:uid

지원되는 속성:

속성 유형 필수 여부 설명
id 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로
uid 문자열 사용자의 외부 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 정수/문자열 그룹의 ID 또는 URL 인코딩된 경로
uid 문자열 사용자의 외부 UID

예시 요청:

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

단일 SAML 식별자 삭제

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"
}

Self-managed GitLab 엔드포인트

단일 SAML 식별자 가져오기

사용자 API를 사용하여 단일 SAML 식별자를 가져옵니다.

SAML 식별자의 extern_uid 필드 업데이트

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

단일 SAML 식별자 삭제

사용자 API를 사용하여 사용자의 단일 식별자를 삭제합니다.

SAML 그룹 링크

  • GitLab 15.3.0에서 도입됨.
  • ‘access_level’ 유형이 GitLab 15.3.3에서 문자열에서 정수변경되었습니다.
  • member_role_id 유형이 GitLab 16.7에서 어드민 역할 제외도입되었습니다. 기본적으로 비활성화됨.
  • 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 정수/문자열 그룹의 ID 또는 URL-encoded 경로
saml_group_name 문자열 SAML 그룹의 이름

성공적인 경우 200을 반환하며 다음과 같은 응답 속성을 제공합니다:

속성 유형 설명
name 문자열 SAML 그룹의 이름
access_level 정수 SAML 그룹의 멤버들을 위한 역할 (access_level)
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/saml-group-1"

예시 응답:

{
"name": "saml-group-1",
"access_level": 10,
"member_role_id": 12
}

SAML 그룹 링크 추가하기

그룹에 SAML 그룹 링크를 추가합니다.

POST /groups/:id/saml_group_links

지원되는 속성:

속성 유형 필수 설명
id 정수 또는 문자열 그룹의 ID 또는 URL-encoded 경로
saml_group_name 문자열 SAML 그룹의 이름
access_level 정수 SAML 그룹의 멤버들을 위한 역할 (access_level)
member_role_id 정수 아니오 SAML 그룹의 멤버들을 위한 멤버 역할 ID (member_role_id)

성공적인 경우 201을 반환하며 다음과 같은 응답 속성을 제공합니다:

속성 유형 설명
name 문자열 SAML 그룹의 이름
access_level 정수 SAML 그룹의 멤버들을 위한 역할 (access_level)
member_role_id 정수 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-encoded 경로
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 상태 코드를 반환합니다.