피드로 돌아가기
CLI 인증, 올바른 방식
GeekNewsGeekNews
Security

CLI 인증, 올바른 방식

RFC 8628 도입을 통한 CLI 인증의 환경 독립성 확보 및 보안 강화

neo2026년 6월 20일15intermediate

Context

기존 CLI 인증은 Localhost HTTP 서버와 시스템 브라우저의 공존을 전제로 하는 Loopback 리다이렉트 구조에 의존함. 이 방식은 SSH 세션, 컨테이너, WSL 등 브라우저 실행 환경과 CLI 실행 환경이 분리된 인프라에서 인증 흐름이 단절되는 치명적 한계가 존재함.

Technical Solution

  • RFC 8628 Device Authorization Grant 채택을 통한 인증 장치와 토큰 요청 장치의 논리적 분리 설계
  • Device Authorization Endpoint를 통한 device_code 및 user_code 발급으로 포트 바인딩 의존성 제거
  • /token 엔드포인트에 대한 Stateless Polling 메커니즘을 구현하여 WebSocket 대비 단순하고 저렴한 상태 관리 달성
  • authorization_pending 및 slow_down 상태 처리를 통한 서버 부하 조절 및 폴링 간격 최적화
  • OIDC Discovery(.well-known/openid-configuration) 활용으로 엔드포인트 하드코딩 제거 및 유연한 설정 관리
  • OS Keychain 저장소 활용을 통한 Refresh Token의 보안 저장소 표준화

1. CLI 인증 설계 시 Localhost 리다이렉트 대신 Device Flow를 기본값으로 고려했는가?

2. 폴링 구현 시 slow_down 응답에 따른 interval 증가 로직을 포함했는가?

3. Refresh Token을 평문 JSON 파일이 아닌 OS Keychain에 저장하고 있는가?

4. OIDC Discovery를 통해 인증 엔드포인트를 동적으로 탐색하도록 설계했는가?

원문 읽기