사용자 토큰 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에 대한 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>"
}

사용자에 대한 모든 임시 토큰 가져오기

사용자의 모든 임시 토큰을 검색합니다. 임시 토큰 목록을 제한하기 위해 페이지 매개변수 pageper_page를 사용하세요.

사전 요구 사항:

  • 관리자가 되어야 합니다.
GET /users/:user_id/impersonation_tokens

지원하는 속성:

Attribute Type Required Description
user_id integer yes 사용자의 ID.
state string no 상태에 따라 토큰 필터링: 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

지원하는 속성:

Attribute Type Required Description
user_id integer yes 사용자의 ID.
impersonation_token_id integer yes 임시 토큰의 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"