본문 바로가기
Q&A2023년 9월 9일1분 읽기

OAuth 2.0 PKCE 플로우 설명

배
배준호
조회 603댓글 1

OAuth 2.0 PKCE가 뭔가요? 왜 필요한 건가요?

댓글 1

김김영삼3년 전

PKCE(Proof Key for Code Exchange)는 OAuth 2.0의 Authorization Code 플로우를 더 안전하게 만드는 확장입니다.

왜 필요한가: SPA나 모바일 앱은 client_secret을 안전하게 저장할 수 없습니다. PKCE는 secret 없이도 안전한 인증을 제공합니다.

흐름:

  1. 클라이언트: 랜덤 code_verifier 생성
  2. code_challenge = SHA256(code_verifier) 계산
  3. 인가 요청 시 code_challenge 전송
  4. 인가 코드 수신
  5. 토큰 요청 시 code_verifier 전송
  6. 서버: SHA256(verifier) == challenge 검증 후 토큰 발급

중간에 인가 코드를 탈취해도 code_verifier가 없으면 토큰을 받을 수 없습니다. 2023년 기준 SPA/모바일에서 PKCE는 필수입니다.

Ctrl+Enter로 등록