SCIM API

Tier: Premium, Ultimate Offering: GitLab.com

GitLab SCIM API는 그룹 내 SCIM 아이덴티티를 관리하며 /groups/:groups_id/scim/identities/groups/:groups_id/scim/:uid 엔드포인트를 제공합니다. 기본 URL은 <http|https>://<GitLab host>/api/v4입니다.

이 API를 사용하려면 그룹 SSO가 그룹에서 활성화되어 있어야 합니다. 이 API는 SCIM for Group SSO가 활성화된 곳에서만 사용됩니다. SCIM 아이덴티티 생성에 대한 전제 조건입니다.

이 API는 내부 그룹 SCIM API인스턴스 SCIM API와 다릅니다:

  • 이 API:
    • RFC7644 프로토콜을 구현하지 않습니다.
    • 그룹 내 SCIM 아이덴티티를 가져오고, 확인하며, 업데이트하고, 삭제합니다.
  • 내부 그룹 및 인스턴스 SCIM API:
    • SCIM 공급자 통합을 위한 시스템 사용입니다.
    • RFC7644 프로토콜을 구현합니다.
    • 그룹 또는 인스턴스의 SCIM 프로비저닝된 사용자 목록을 가져옵니다.
    • 그룹 또는 인스턴스의 SCIM 프로비저닝된 사용자를 생성하고, 삭제하고, 업데이트합니다.

SCIM 아이덴티티 가져오기

GET /groups/:id/scim/identities

지원되는 속성:

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

성공적으로 처리되면 200를 반환하며 다음과 같은 응답 속성을 포함합니다:

속성 유형 설명
extern_uid 문자열 사용자의 외부 UID
user_id 정수 사용자의 ID
active 불리언 아이덴티티의 상태

예시 응답:

[
    {
        "extern_uid": "be20d8dcc028677c931e04f387",
        "user_id": 48,
        "active": true
    }
]

예시 요청:

curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/scim/identities" \
--header "PRIVATE-TOKEN: <PRIVATE-TOKEN>"

단일 SCIM 아이덴티티 가져오기

GET /groups/:id/scim/:uid

지원되는 속성:

속성 유형 필수 설명
id 정수 그룹의 ID 또는 URL-인코딩된 경로
uid 문자열 사용자의 외부 UID.

예시 요청:

curl --location --request GET "https://gitlab.example.com/api/v4/groups/33/scim/be20d8dcc028677c931e04f387" --header "PRIVATE-TOKEN: <PRIVATE TOKEN>"

예시 응답:

{
    "extern_uid": "be20d8dcc028677c931e04f387",
    "user_id": 48,
    "active": true
}

SCIM 아이덴티티의 extern_uid 필드 업데이트

업데이트할 수 있는 필드는 다음과 같습니다:

SCIM/IdP 필드 GitLab 필드
id/externalId extern_uid
PATCH /groups/:groups_id/scim/:uid

매개변수:

속성 유형 필수 설명
id integer/string 그룹의 ID 또는 URL 인코딩된 경로
uid string 사용자의 외부 UID.

예제 요청:

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

단일 SCIM 아이덴티티 삭제

DELETE /groups/:id/scim/:uid

지원되는 속성:

속성 유형 필수 설명
id integer 그룹의 ID 또는 URL 인코딩된 경로.
uid string 사용자의 외부 UID.

예제 요청:

curl --location --request DELETE "https://gitlab.example.com/api/v4/groups/33/scim/yrnZW46BrtBFqM7xDzE7dddd" --header "PRIVATE-TOKEN: <your_access_token>"

예제 응답:

{
    "message" : "204 No Content"
}