CLI용 관리 토큰 생성
POST https://api.keenauth.com/v1/environments/{environment_id}/management-tokens · keenauth login이 호출
CLI의 로그인을 환경 하나에 대한 10분짜리 토큰으로 교환합니다. 이 엔드포인트를 직접 호출할 필요는 없습니다. keenauth login이 대시보드 계정으로 로그인시키며(기기 인증, 또는 --web을 사용하면 PKCE를 쓰는 루프백 리디렉션), CLI는 작업하는 환경마다 토큰을 요청합니다. 토큰은 CLI의 키(DPoP)에 묶이며, 해당 환경에서 대시보드 역할이 가진 권한만 담습니다.
요청
헤더:
| 헤더 | 필수 | 설명 |
|---|---|---|
Authorization |
예 | DPoP <access token>: 로그인할 때 CLI가 받은 액세스 토큰입니다. |
DPoP |
예 | 이 요청에 대한 DPoP 증명입니다. 액세스 토큰이 묶인 키로 서명되며, 액세스 토큰의 해시와 서버 nonce를 담습니다. |
Content-Type |
예 | application/json. |
본문: 빈 JSON 객체 {}입니다. 다른 멤버는 unknown_field로 거부됩니다. 이 요청에는 Idempotency-Key가 없습니다. 호출할 때마다 새 토큰이 발급됩니다.
응답
Cache-Control: no-store와 함께 201 Created:
| 필드 | 설명 |
|---|---|
access_token |
관리 토큰입니다. 같은 키의 증명과 함께 Authorization: DPoP <token>으로 보내십시오. |
token_type |
항상 DPoP입니다. |
expires_in |
수명(초): 600. |
expires_at |
수명이 끝나는 시각(RFC 3339, UTC). |
environment_id |
토큰이 속한 환경입니다. |
audience |
토큰이 대상으로 하는 셀(<region>/<cell>)입니다. |
api_base |
토큰을 받는 지역 API의 기본 URL입니다. |
permissions |
대시보드 역할의 환경 권한입니다. |
CLI는 토큰을 메모리에만 보관합니다. 역할 변경은 최대 10분 안에 적용되며, 역할이 제거되면 해당 사용자의 열린 토큰은 취소됩니다.
오류
| 상태 | 코드 | 발생 시점 |
|---|---|---|
| 401 | unauthenticated |
액세스 토큰이 전송되지 않았습니다. |
| 401 | invalid_token |
액세스 토큰이 잘못되었거나, 만료되었거나, CLI의 토큰이 아닙니다. keenauth login으로 다시 로그인하십시오. |
| 401 | invalid_dpop_proof |
DPoP 증명이 없거나, 중복되었거나, 요청 또는 토큰의 키와 일치하지 않습니다. |
| 401 | use_dpop_nonce |
DPoP-Nonce 응답 헤더의 nonce를 담은 증명으로 다시 시도하십시오. |
| 401 | insufficient_user_authentication |
다중 인증이 필요합니다(역할에 따라 패스키 또는 보안 키가 필요할 수도 있습니다). 다시 로그인하십시오. |
| 404 | not_found |
환경이 없거나, 해당 환경에 대시보드 역할이 없습니다. |
| 429 | rate_limited |
사용자당 분당 30개를 넘는 토큰 요청입니다(대시보드와 공유). Retry-After를 기다리십시오. |
예제
curl -X POST https://api.keenauth.com/v1/environments/env_01jb0000000000000000000000/management-tokens \
-H "Authorization: DPoP $ACCESS_TOKEN" \
-H "DPoP: $DPOP_PROOF" \
-H "Content-Type: application/json" \
-d '{}'