사용자 토큰 API

Tier: Free, Premium, Ultimate Offering: Self-managed, GitLab Dedicated

개인 엑세스 토큰가장하 토큰을 REST API를 사용하여 관리할 수 있습니다.

개인 엑세스 토큰 생성

  • expires_at 속성의 기본값은 GitLab 16.0에 도입되었습니다.

새로운 개인 엑세스 토큰을 생성합니다. 토큰 값은 한 번만 반환되므로 반드시 저장해야 합니다. 다시 액세스할 수 없습니다.

전제 조건:

  • 관리자여야 합니다.
POST /users/:user_id/personal_access_tokens

지원되는 속성:

속성 유형 필수 설명
user_id 정수 사용자 ID입니다.
name 문자열 개인 엑세스 토큰의 이름입니다.
expires_at 날짜 아니오 ISO 형식(YYYY-MM-DD)의 엑세스 토큰 만료 날짜입니다. 날짜가 설정되지 않으면, 만료 기간은 액세스 토큰의 최대 허용 수명으로 설정됩니다.
scopes 배열 개인 엑세스 토큰의 스코프 배열입니다. 가능한 값은 개인 엑세스 토큰 스코프를 참조하세요.

예시 요청:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" \
     --data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/personal_access_tokens"

예시 응답:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "scopes": [
        "api"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-12-31",
    "token": "<your_new_access_token>"
}

사용자 계정에 제한된 범위로 개인 엑세스 토큰 생성

사용자 계정에 새로운 개인 엑세스 토큰을 생성합니다.

전제 조건:

  • 인증되어야 합니다.

보안을 위해 토큰은 다음과 같습니다:

  • k8s_proxy 범위에 제한됩니다. 이 범위는 Kubernetes 에이전트를 사용하여 Kubernetes API 호출을 수행할 수 있는 권한을 부여합니다.
  • 기본적으로 만들어진 날의 끝에 만료됩니다.

토큰 값은 한 번만 반환되므로 토큰을 반드시 저장해야 합니다. 다시 액세스할 수 없습니다.

POST /user/personal_access_tokens

지원되는 속성:

속성 유형 필수 설명
name 문자열 개인 엑세스 토큰의 이름입니다.
scopes 배열 개인 엑세스 토큰의 스코프 배열입니다. 가능한 값은 k8s_proxy입니다.
expires_at 배열 아니오 ISO 형식(YYYY-MM-DD)의 액세스 토큰 만료 날짜입니다. 날짜가 설정되지 않으면, 만료 기간은 현재 날의 끝으로 설정됩니다. 만료 기간은 액세스 토큰의 최대 허용 수명에 따릅니다.

예시 요청:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "scopes[]=k8s_proxy" "https://gitlab.example.com/api/v4/user/personal_access_tokens"

예시 응답:

{
    "id": 3,
    "name": "mytoken",
    "revoked": false,
    "created_at": "2020-10-14T11:58:53.526Z",
    "scopes": [
        "k8s_proxy"
    ],
    "user_id": 42,
    "active": true,
    "expires_at": "2020-10-15",
    "token": "<your_new_access_token>"
}

사용자의 가장하기 토큰 모두 가져오기

사용자의 모든 가장하기 토큰을 검색합니다. offset 기반 분할 매개변수 pageper_page를 사용하여 가장하기 토큰 목록을 제한할 수 있습니다.

전제 조건:

  • 관리자여야 합니다.
GET /users/:user_id/impersonation_tokens

지원되는 속성:

속성 유형 필수 설명
user_id 정수 사용자 ID입니다.
state 문자열 아니오 상태에 기반하여 토큰을 필터링합니다: all, active, 또는 inactive.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

예시 응답:

[
   {
      "active" : true,
      "user_id" : 2,
      "scopes" : [
         "api"
      ],
      "revoked" : false,
      "name" : "mytoken",
      "id" : 2,
      "created_at" : "2017-03-17T17:18:09.283Z",
      "impersonation" : true,
      "expires_at" : "2017-04-04",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   },
   {
      "active" : false,
      "user_id" : 2,
      "scopes" : [
         "read_user"
      ],
      "revoked" : true,
      "name" : "mytoken2",
      "created_at" : "2017-03-17T17:19:28.697Z",
      "id" : 3,
      "impersonation" : true,
      "expires_at" : "2017-04-14",
      "last_used_at": "2017-03-24T09:44:21.722Z"
   }
]

사용자의 표시 토큰 가져오기

사용자의 표시 토큰을 가져옵니다.

필수 사항:

  • 관리자여야 합니다.
GET /users/:user_id/impersonation_tokens/:impersonation_token_id

지원되는 속성:

속성 유형 필수 설명
user_id 정수 사용자의 ID입니다.
impersonation_token_id 정수 표시 토큰의 ID입니다.

예시 요청:

curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/2"

예시 응답:

{
   "active" : true,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "revoked" : false,
   "name" : "mytoken",
   "id" : 2,
   "created_at" : "2017-03-17T17:18:09.283Z",
   "impersonation" : true,
   "expires_at" : "2017-04-04"
}

표시 토큰 생성하기

새로운 표시 토큰을 생성합니다. 사용자를 표시하고 API 호출 및 Git 읽기 및 쓰기를 수행하는 데만 표시 토큰을 만들 수 있습니다. 사용자는 자신의 프로필 설정 페이지에서 이러한 토큰들을 볼 수 없습니다.

토큰 값은 한 번만 반환됩니다. 다시 액세스할 수 없으므로 저장해 두세요.

필수 사항:

  • 관리자여야 합니다.
POST /users/:user_id/impersonation_tokens

지원되는 속성:

속성 유형 필수 설명
user_id 정수 사용자의 ID입니다.
name 문자열 표시 토큰의 이름입니다.
expires_at 날짜 ISO 형식(YYYY-MM-DD)의 표시 토큰 만료 날짜입니다.
scopes 배열 표시 토큰의 스코프 배열입니다(api, read_user).

예시 요청:

curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" \
     --data "scopes[]=api" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens"

예시 응답:

{
   "id" : 2,
   "revoked" : false,
   "user_id" : 2,
   "scopes" : [
      "api"
   ],
   "token" : "<impersonation_token>",
   "active" : true,
   "impersonation" : true,
   "name" : "mytoken",
   "created_at" : "2017-03-17T17:18:09.283Z",
   "expires_at" : "2017-04-04"
}

표시 토큰 폐기하기

표시 토큰을 폐기합니다.

필수 사항:

  • 관리자여야 합니다.
DELETE /users/:user_id/impersonation_tokens/:impersonation_token_id

지원되는 속성:

속성 유형 필수 설명
user_id 정수 사용자의 ID입니다.
impersonation_token_id 정수 표시 토큰의 ID입니다.

예시 요청:

curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/users/42/impersonation_tokens/1"