✅ /.well-known/openid-configuration
은 OpenID 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 클라이언트와 서버 간의 원활한 상호작용을 위한 기반이 됩니다.
'OAuth' 카테고리의 다른 글
OpenID Connect (OIDC) (1) | 2024.12.18 |
---|---|
인가 코드 그랜트 타입과 클라이언트 크레덴셜 그랜트 타입 (0) | 2024.12.18 |
Client Credentials Grant Type (0) | 2024.12.18 |
OAuth 2.0 액세스 토큰 발급 방법 (0) | 2024.12.17 |
Spring Authorization Server 구성 (0) | 2024.12.17 |