발견 요청을 승인하도록 OpenID Connect Provider 구성
발견 구성 엔드포인트는 OpenID Connect Provider(OP) 서버가 지원하는 기능에 대해 정보를 사용할 수 있도록 만듭니다.
이 태스크 정보
이 서비스가 리턴하는 메타데이터는 OIDC Discovery 1.0 스펙 제공자 메타데이터를 기반으로 하고 확장합니다. 아무것도 지정하지 않으면 서비스는 기본 구성 세트를 리턴합니다. 그렇지 않으면 목적과 구성 가능한 옵션을 이해하기 위해 특성 목록을 참조합니다.
프로시저
발견 구성 서비스에서 선택된 특성의 기본값을 대체할 수 있습니다. 이 조치는
server.xml 파일에 값을 지정하여 수행됩니다.
구성 가능한 특성과 가능한 구성 옵션을 보려면 다음 특성 표를 참조하십시오.
속성 이름 | 데이터 유형 | 필수/선택사항 | 설명 |
---|---|---|---|
responseTypesSupported | 입력 | 선택사항 | OpenID Connect Provider(OP) 서버에서 지원되는 응답 유형입니다. 지정되지 않는 경우 기본값은
code, token 및 id_token
token입니다. 둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
subjectTypesSupported | 출력 전용 | 해당사항 없음 | OP 서버에서 지원되는 주제 유형입니다. 이 값은 public으로 설정됩니다. 이 값은 문자열입니다. |
idTokenSigningAlgValuesSupported | 출력 전용 | 선택사항 | OP 서버에서 지원되는 ID 토큰 서명 알고리즘입니다. 이 값은 openidConnectProvider 서버 구성에서
서버 속성 signatureAlgorithm으로 지정됩니다. 지정되지 않은 경우 기본값은 HS256입니다. 하나의 값만
지정할 수 있습니다. 이는 문자열입니다. 예를 들어, openidConnectProvider 구성에서
signatureAlgorithm 속성에 가능한 값은 다음과 같습니다.
|
scopesSupported | 입력 | 선택사항 | OP 서버에서 지원되는 범위 값입니다.
지정되지 않은 경우 기본값은 openid, general, profile, email, address 및
phone입니다. 둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
claimsSupported | 입력 | 선택사항 | OP 서버에서 지원되는 청구 값입니다. 지정되지 않은 경우 기본값은
sub, groupIds, name, preferred_username, picture, locale, email 및
profile입니다. 둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
responseModesSupported | 입력 | 선택사항 | OP 서버에서 지원되는 응답 모드입니다. 지정되지 않은 경우 기본값은
query 및 fragment입니다.
둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다.
|
grantTypesSupported | 입력 | 선택사항 | OP 서버에서 지원되는 권한 부여 유형입니다. 지정되지 않은 경우 기본값은
authorization_code, implicit, refresh_token, client_credentials, password 및
urn:ietf:params:oauth:grant-type:jwtbearer입니다. 둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
tokenEndpointAuthMethodsSupported | 입력 | 선택사항 | OP 서버에서 지원되는 토큰 엔드포인트 권한 부여 메소드입니다. 지정되지 않은 경우 기본값은
client_secret_post 및 client_secret_basic입니다.
둘 이상의 값을 지정할 수 있습니다. 이 값들은 문자열입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
displayValuesSupported | 출력 전용 | 해당사항 없음 | OP 서버에서 지원되는 표시 값입니다. 이 값은 page로 설정됩니다. 이 값은 문자열입니다. |
claimTypesSupported | 출력 전용 | 해당사항 없음 | OP 서버에서 지원되는 청구 유형 값입니다. 이 값은 normal로 설정됩니다. 이 값은 문자열입니다. |
claimsParameterSupported | 입력 | 선택사항 | OP 서버에서 청구 매개변수가 지원되는지 여부를 표시합니다. 지정되지 않은 경우
기본값은 false입니다. 하나의 값만
지정할 수 있습니다. 이는 부울 값입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
requestParameterSupported | 입력 | 선택사항 | OP 서버에서 요청 매개변수가 지원되는지 여부를 표시합니다. 지정되지 않은 경우
기본값은 false입니다. 하나의 값만
지정할 수 있습니다. 이는 부울 값입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
requestUriParameterSupported | 입력 | 선택사항 | OP 서버에서 요청 URI 매개변수가 지원되는지 여부를 표시합니다. 지정되지 않은 경우
기본값은 false입니다. 하나의 값만
지정할 수 있습니다. 이는 부울 값입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
requireRequestUriRegistration | 입력 | 선택사항 | OP 서버에서 요청 URI 등록 요구가 지원되는지 여부를 표시합니다. 지정되지 않은 경우
기본값은 false입니다. 하나의 값만
지정할 수 있습니다. 이는 부울 값입니다. 예를 들어, 가능한 값은 다음과 같습니다.
|
발견 구성의 예
다음 예제에서는 Liberty OP가 포트 443에서 SSL로 구성되어 있다고 가정합니다.
https://server.example.com:443/oidc/endpoint/<provider_name>/
발견 구성 엔드포인트는 다음 위치에서 액세스할 수 있습니다.
https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration
예를 들어, server.xml 파일에서 사용자는 다음과 같은 방식으로 OpenID Connect 발견 구성 특성을 사용자 정의할 수 있습니다.
<openidConnectProvider id="OidcConfigSample" oauthProviderRef="OAuthConfigSample">
<discovery
responseTypesSupported="token, id_token token"
subjectTypesSupported="public"
scopesSupported="openid, general, profile"
claimsSupported="sub, groupIds, name"
responseModesSupported="query"
grantTypesSupported="implicit"
tokenEndpointAuthMethodsSupported="client_secret_basic"
displayValuesSupported="page"
claimTypesSupported="normal"
claimsParameterSupported="true"
requestParameterSupported="true"
requestUriParameterSupported="true"
requireRequestUriRegistration="true"
/>
</openidConnectProvider>
<oauthProvider id="OAuthConfigSample">
</oauthProvider>
Request Headers: GET https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration Response Headers: Status: 200 Content-Type: application/json Cache-Control:public, max-age=3600 Response Body: { "introspection_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/introspect", "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/coverage_map", "issuer":"https://server.example.com:443/oidc/endpoint/<provider_name>", "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/authorize", "token_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/token", "response_types_supported":[ "token", "id_token token" ], "subject_types_supported":[ "public" ], "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo", "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/registration", "scopes_supported":[ "openid", "general", "profile" ], "claims_supported":[ "sub", "groupIds", "name" ], "response_modes_supported":[ "query" ], "grant_types_supported":[ "implicit" ], "token_endpoint_auth_methods_supported":[ "client_secret_basic" ], "display_values_supported":[ "page" ], "claim_types_supported":[ "normal" ], "claims_parameter_supported":true, "request_parameter_supported":true, "request_uri_parameter_supported":true, "require_request_uri_registration":true, "check_session_iframe":"https://server.example.com:443/oidc/endpoint/<provider_name>/check_session_iframe", "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/end_session" }
Request Headers: GET https://server.example.com:443/oidc/endpoint/<provider_name>/.well-known/openid-configuration Response Headers: Status: 200 Content-Type: application/json Cache-Control:public, max-age=3600 Response Body: { "introspection_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/introspect", "coverage_map_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/coverage_map", "issuer":"https://server.example.com:443/oidc/endpoint/<provider_name>", "authorization_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/authorize", "token_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/token", "response_types_supported":[ "code", "token", "id_token token" ], "subject_types_supported":[ "public" ], "userinfo_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo", "registration_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/registration", "scopes_supported":[ "openid", "general", "profile", "email", "address", "phone" ], "claims_supported":[ "sub", "groupIds", "name", "preferred_username", "picture", "locale", "email", "profile" ], "response_modes_supported":[ "query", "fragment" ], "grant_types_supported":[ "authorization_code", "implicit", "refresh_token", "client_credentials", "password", "urn:ietf:params:oauth:grant-type:jwt-bearer" ], "token_endpoint_auth_methods_supported":[ "client_secret_post", "client_secret_basic" ], "display_values_supported":[ "page" ], "claim_types_supported":[ "normal" ], "claims_parameter_supported":false, "request_parameter_supported":false, "request_uri_parameter_supported":false, "require_request_uri_registration":false, "check_session_iframe":"https://server.example.com:443/oidc/endpoint/<provider_name>/check_session_iframe", "end_session_endpoint":"https://server.example.com:443/oidc/endpoint/<provider_name>/end_session" }