OAuth2 and OIDC
PKCE(Proof Key for Code Exchange): 코드 탈취 방지. SPA/모바일 앱에서 필수.
sys.entry
M
Me
hyunyoun's Blog
software-engineering-devops2 min read
OAuth2 and OIDC
OAuth2: 리소스 접근 위임 프레임워크 (인가). OIDC: OAuth2 위에 구축된 신원 확인 레이어 (인증).
핵심 구분
Authorization Code Flow (권장)
CODE
1. 앱 → 인가 서버: 인가 요청 (code_challenge PKCE)
2. 사용자: 로그인 + 동의
3. 인가 서버 → 앱: code 반환
4. 앱 → 인가 서버: code + code_verifier 교환
5. 인가 서버 → 앱: Access Token + Refresh Token + ID Token
PKCE(Proof Key for Code Exchange): 코드 탈취 방지. SPA/모바일 앱에서 필수.
토큰 유형
- Access Token: 리소스 서버 접근 (단명, 수분~1시간)
- Refresh Token: 새 Access Token 발급 (장명, 저장 시 암호화 필수)
- ID Token: JWT, 사용자 정보 포함 (sub, email, name 등 클레임)
흔한 실수
- Access Token을 localStorage에 저장 (XSS 취약) → httpOnly 쿠키 사용
- ID Token을 API 인가에 사용 (목적 혼용)
- Refresh Token 순환(rotation) 미적용 → 탈취 감지 불가
연결 노트
- ZK-JWT-Structure — ID Token은 JWT 형식으로 발급
- ZK-Zero-Trust-Security — OAuth2/OIDC는 Zero Trust의 신원 계층 구현