OAuth 2.0 / OIDC Reference
OAuth 2.0 플로우, OIDC 클레임 레퍼런스
OAuth 2.0 / OIDC Reference 소개
OAuth 2.0 / OIDC 레퍼런스는 최신 인증 및 인가 프로토콜에 대한 검색 가능한 가이드입니다. Authorization Code Flow, 공개 클라이언트용 PKCE, 서버 간 통신을 위한 Client Credentials, 입력 제한 장치용 Device Code Flow, 그리고 마이그레이션 가이드와 함께 더 이상 권장되지 않는 Implicit Flow를 포함한 모든 주요 인가 플로우를 다룹니다.
Access Token, Refresh Token, ID Token의 JWT 구조 예제, 토큰 인트로스펙션(RFC 7662), 토큰 폐기(RFC 7009)를 문서화합니다. 또한 OIDC 표준 클레임, 필수 ID Token 클레임, 표준 스코프(openid, profile, email, offline_access), 그리고 JWKS, Discovery(.well-known/openid-configuration), UserInfo 등 필수 엔드포인트를 다룹니다.
OAuth 2.0과 OpenID Connect를 구현하는 백엔드 개발자, 보안 엔지니어, DevOps 팀을 위해 설계되었습니다. 모든 데이터는 브라우저에서 로컬로 처리되며 다크 모드를 지원합니다.
주요 기능
- OAuth 2.0 플로우 완전 레퍼런스: Authorization Code, PKCE, Client Credentials, Device Code, Implicit(폐기)
- 토큰 관리 가이드: Access Token, Refresh Token, ID Token, 인트로스펙션(RFC 7662), 폐기(RFC 7009)
- OIDC 표준 클레임 및 필수 ID Token 클레임(iss, sub, aud, exp, iat, nonce)과 JSON 예제
- 표준 스코프 레퍼런스: openid, profile, email, address, phone, offline_access
- JWKS(.well-known/jwks.json), Discovery(.well-known/openid-configuration), UserInfo 엔드포인트 문서
- code_verifier 생성과 SHA-256 챌린지 계산을 포함한 PKCE 구현 상세
- Refresh Token Rotation 모범 사례 및 보안 권장 사항
- 모든 플로우와 엔드포인트에 대한 실제 요청/응답 예제
자주 묻는 질문
OAuth 2.0과 OpenID Connect(OIDC)의 차이는 무엇인가요?
OAuth 2.0은 서드파티 애플리케이션에 액세스 토큰을 통해 제한된 리소스 접근을 부여하는 인가 프레임워크입니다. OpenID Connect(OIDC)는 OAuth 2.0 위에 구축된 ID 레이어로, sub, name, email 같은 사용자 신원 클레임을 담은 ID Token(JWT)을 도입하여 인증을 추가합니다. 이 레퍼런스는 두 프로토콜이 함께 사용되므로 통합하여 다룹니다.
Authorization Code Flow와 PKCE 중 언제 무엇을 사용해야 하나요?
Authorization Code Flow는 client_secret을 안전하게 저장할 수 있는 서버 사이드 애플리케이션용입니다. PKCE는 SPA나 모바일 앱처럼 시크릿을 안전하게 저장할 수 없는 공개 클라이언트를 위해 Authorization Code Flow를 확장합니다. code_verifier와 SHA-256 code_challenge로 인가 코드 가로채기 공격을 방지합니다. 최신 모범 사례는 모든 클라이언트에 PKCE를 권장합니다.
Client Credentials Flow는 어떤 경우에 사용하나요?
Client Credentials Flow는 사용자가 관여하지 않는 서버 간(M2M) 통신용입니다. 클라이언트가 client_id와 client_secret으로 직접 인증하여 액세스 토큰을 받습니다. 마이크로서비스 간 API 호출, 백그라운드 작업, 사용자 상호작용 없이 API 접근이 필요한 자동화 시스템에 사용됩니다.
ID Token에는 어떤 클레임이 반드시 포함되어야 하나요?
OIDC ID Token에는 iss(발급자 URL), sub(사용자 고유 식별자), aud(클라이언트 ID), exp(만료 시각, Unix 타임스탬프), iat(발급 시각), nonce(재전송 방지 값) 클레임이 필수입니다. name, email, picture 같은 추가 표준 클레임은 선택적이며 요청된 스코프에 따라 달라집니다.
토큰 인트로스펙션(RFC 7662)은 어떻게 작동하나요?
리소스 서버가 인가 서버의 /introspect 엔드포인트에 토큰과 클라이언트 자격 증명을 POST 요청으로 보내 토큰을 검증합니다. 응답에는 active 필드(true/false)와 sub, scope, exp 등의 메타데이터가 포함됩니다. 자체 포함된 JWT와 달리 로컬에서 검증할 수 없는 불투명 토큰에 특히 유용합니다.
OIDC Discovery 엔드포인트란 무엇인가요?
/.well-known/openid-configuration에 위치한 Discovery 엔드포인트는 OIDC 제공자의 구성을 설명하는 JSON 문서를 반환합니다. 발급자 URL, authorization_endpoint, token_endpoint, userinfo_endpoint, jwks_uri, 지원 스코프 및 응답 타입이 포함됩니다. 클라이언트는 엔드포인트 URL을 하드코딩하지 않고 이를 통해 자동으로 구성합니다.
Implicit Flow가 폐기된 이유는 무엇인가요?
Implicit Flow는 액세스 토큰을 URL 프래그먼트(redirect_uri#access_token=TOKEN)에 직접 노출하여 브라우저 히스토리 유출, 리퍼러 헤더 유출, 중간자 공격에 취약합니다. 권장 대안은 Authorization Code Flow + PKCE로, 토큰을 URL에 노출하지 않아 SPA에 더 나은 보안을 제공합니다.
이 OAuth 2.0 / OIDC 레퍼런스는 무료인가요?
네, 이 레퍼런스는 사용 제한, 계정 요구, 소프트웨어 설치 없이 완전히 무료입니다. 모든 데이터는 브라우저에서 로컬로 처리됩니다. liminfo.com의 무료 온라인 개발자 및 보안 도구 모음의 일부입니다.