OAuth / / 2024. 12. 18. 11:44

/.well-known/openid-configuration

/.well-known/openid-configurationOpenID Connect (OIDC) 표준에서 정의된 엔드포인트로, OpenID Connect Provider (OP)메타데이터를 제공하는 역할을 합니다.


1. OpenID Connect란?

OpenID Connect (OIDC)는 OAuth 2.0을 확장한 사용자 인증 프로토콜입니다.

  • OIDC는 OAuth 2.0권한 부여에 더해, 사용자의 인증 정보를 안전하게 제공하기 위해 사용됩니다.
  • 주로 로그인, 토큰 기반 인증을 위해 사용됩니다.

2. .well-known/openid-configuration의 역할

이 엔드포인트는 OpenID Connect 서버의 설정 정보(메타데이터)를 JSON 형식으로 제공합니다.

  • 클라이언트 애플리케이션은 이 URL을 호출해서 인증 서버의 메타데이터를 가져와 설정에 활용합니다.

3. URL 구조

OpenID Connect 서버의 설정 정보는 다음과 같은 경로에서 접근할 수 있습니다:

http://<호스트>:<포트>/.well-known/openid-configuration

예시

  • 로컬 테스트: http://localhost:8080/.well-known/openid-configuration
  • 실제 서버: https://example.com/.well-known/openid-configuration

4. 반환되는 정보 (메타데이터 필드)

/.well-known/openid-configuration 엔드포인트가 반환하는 JSON에는 다음과 같은 정보들이 포함됩니다:

필드명 설명
issuer 인증 서버의 고유 식별자 (URL)
authorization_endpoint 사용자 인증을 수행하는 엔드포인트 URL
token_endpoint Access Token과 ID Token을 발급하는 엔드포인트
userinfo_endpoint 사용자 정보를 제공하는 엔드포인트 URL
jwks_uri JWT 서명 확인을 위한 공개키 목록 URL
response_types_supported 지원하는 응답 타입 (예: code, token)
subject_types_supported 지원하는 사용자 ID 타입 (예: public)
id_token_signing_alg_values_supported 지원하는 ID 토큰 서명 알고리즘
scopes_supported 지원하는 스코프 목록 (예: openid, profile)
token_endpoint_auth_methods_supported 지원하는 토큰 인증 방법

5. 반환 예시

http://localhost:8080/.well-known/openid-configuration 요청 시 반환되는 JSON 예시:

{
  "issuer": "http://localhost:8080",
  "authorization_endpoint": "http://localhost:8080/oauth2/authorize",
  "token_endpoint": "http://localhost:8080/oauth2/token",
  "userinfo_endpoint": "http://localhost:8080/userinfo",
  "jwks_uri": "http://localhost:8080/.well-known/jwks.json",
  "response_types_supported": ["code", "token", "id_token"],
  "subject_types_supported": ["public"],
  "id_token_signing_alg_values_supported": ["RS256"],
  "scopes_supported": ["openid", "profile", "email"],
  "token_endpoint_auth_methods_supported": ["client_secret_basic", "client_secret_post"]
}

6. 사용 목적

  • 클라이언트 설정 자동화: 클라이언트가 인증 서버의 메타데이터를 자동으로 가져와 설정할 수 있습니다.
  • 서버 메타데이터 제공: 인증 엔드포인트, 토큰 발급 엔드포인트 등 인증 서버의 필수 정보를 전달합니다.
  • 동적 설정 지원: 서버 설정이 변경되더라도 클라이언트는 새로운 메타데이터를 가져와 반영할 수 있습니다.

7. 정리

  • /.well-known/openid-configuration은 OpenID Connect 서버의 설정 정보를 제공하는 엔드포인트입니다.
  • 클라이언트는 이 정보를 바탕으로 인증 엔드포인트, 토큰 발급 URL 등을 자동으로 설정할 수 있습니다.
  • 반환되는 JSON에는 서버의 메타데이터(URL, 서명 알고리즘, 지원 스코프 등)가 포함됩니다.

✅ 이 정보가 OpenID Connect 클라이언트와 서버 간의 원활한 상호작용을 위한 기반이 됩니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유