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 '{}'