OAuth 2.0 및 OpenID Connect 엔드포인트 개요
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

OAuth 및 OIDC 엔드포인트 개요

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인프라/DevOps/보안

대상자

  • 소프트웨어 개발자, 보안 엔지니어, 인증 시스템 설계자
  • 난이도: 중급 이상 (OAuth 2.0 및 OpenID Connect 프로토콜 이해 필요)

핵심 요약

  • OAuth 2.0의 3개 필수 엔드포인트 :

- /authorize: 사용자 인증 및 권한 동의 처리

- /token: 인증 코드 → 액세스 토큰/리프레시 토큰 교환

- /introspect (선택): 토큰 유효성 검증

  • OpenID Connect 추가 엔드포인트 :

- /well-known/jwks.json: ID 토큰 서명 검증용 공개 키 제공

- /well-known/openid-configuration: 서버 메타데이터 동적 발견

- /userinfo: 액세스 토큰 기반 사용자 프로필 정보 조회

  • 기본 인증 흐름: authorize → token → userinfo의 3단계 프로세스

섹션별 세부 요약

1. 인트로

  • 엔드포인트 정의: 인증 서버의 URL로, 애플리케이션과 사용자 간 인증/권한 부여를 처리
  • OAuth 2.0 역할: 리소스 접근 권한 부여 프레임워크
  • OIDC 기능: 사용자 인증 확장, ID 토큰 발급

2. OAuth 2.0 엔드포인트

  • /authorize

- response_type=code, client_id, redirect_uri, scope, state 파라미터 사용

- 사용자 로그인 후 임시 authorization code 발급

  • /token

- 앱 서버가 client_id, client_secret, authorization code로 액세스 토큰 요청

- access token, ID token, refresh token 응답

  • Grant Types

- Client Credentials Grant: 기계 간 통신용 액세스 토큰 요청

- Refresh Token Grant: 만료된 액세스 토큰 재발급

3. OpenID Connect 추가 엔드포인트

  • /well-known/jwks.json

- RSA/ECDSA 공개 키 제공 → ID 토큰 서명 검증

  • /well-known/openid-configuration

- 서버 이슈어, 엔드포인트 URL, 지원 스코프, 암호화 알고리즘 정보 제공

- 애플리케이션의 자동 구성 가능

  • /userinfo

- 액세스 토큰으로 sub, email, name 등 사용자 정보 조회

- 최소 권한 원칙 준수

4. 인증 흐름 예시 (Authorization Code Flow)

  1. Discovery: /well-known/openid-configuration에서 서버 메타데이터 조회
  2. Authorization: 사용자 리디렉션 → authorize 엔드포인트에서 로그인 및 동의
  3. Token Exchange: 앱 서버가 /token에 인증 코드 전송 → 액세스/ID 토큰 발급
  4. User Data Access: /userinfo 엔드포인트로 사용자 정보 조회
  5. Token Validation: /jwks.json으로 ID 토큰 서명 검증
  6. Logout: /logout 엔드포인트 호출 → 세션 종료

결론

  • 실무 팁:

- Authorization Code Flow 사용 → 보안 강화

- JWKS 키 검증 필수 → ID 토큰 위변조 방지

- /well-known/openid-configuration 활용 → 서버 자동 구성 가능

- 리프레시 토큰 사용 → 토큰 재발급 효율성 향상

  • 핵심: OAuth 2.0과 OIDC 엔드포인트는 현대 애플리케이션의 보안 인증 기반으로, 정확한 이해가 필수적