Liberty에서 OpenID Connect 제공자 구성
웹 싱글 사인온을 이용하기 위해 OpenID Connect 제공자 또는 권한 부여 서버 역할을 수행하도록 Liberty 서버를 구성할 수 있습니다.
이 태스크 정보
기타 구성 정보 외에도 Liberty의 openidConnectServer-1.0 기능을 사용으로 설정하여 OpenID Connect 제공자 역할을 수행하도록 Liberty 서버를 구성할 수 있습니다.
프로시저
- openidConnectServer-1.0 Liberty 기능 및 기타
필요한 기능을 server.xml 파일에 추가하십시오.
openidConnectServer-1.0 기능에는 ssl-1.0 기능도 필요합니다.
<feature>openidConnectServer-1.0</feature> <feature>ssl-1.0</feature>
- OAuth 서비스 제공자를 정의하십시오. OpenID Connect는 OAuth 2.0
프로토콜 위에 빌드되므로 사용자는 올바른 OAuth 서비스 제공자를
구성해야 합니다. OAuth 서비스 제공자의 구성에는 적절한 oauth-roles,
oauthProvider 및 사용자 레지스트리 요소가 포함되어 있습니다.
OpenID Connect를 사용할 수 있는 권한이 부여된 사용자는 모두 authenticated oauth-role에도
맵핑되어야 합니다. 자세한 정보는 OAuth 서비스 제공자 정의를 참조하십시오.
OAuth 메타데이터가 OpenID Connect에 대해 업데이트되며 주요 추가사항이 클라이언트 메타데이터에 있습니다. 클라이언드 등록을 위해 databaseStore 모드를 사용하는 경우 클라이언트 등록 요청을 승인하도록 OpenID Connect 제공자 구성의 내용을 참조하십시오. 문서를 따라 클라이언트를 관리하는 것이 좋습니다. 클라이언트 등록을 위해 localStore 모드를 사용하는 경우에는 scope, preAuthorizedScope, grantTypes, responseTypes, introspectTokens 및 functionalUserId와 기타 속성을 등록할 수 있습니다.
- oauthProviderRef 속성이 구성된 oauthProvider를
참조하는 openidConnectProvider 요소를 추가하십시오.
각각의 oauthProvider는
하나의 openidConnectProvider에 의해서만 참조될 수 있으므로
둘 이상의 openidConnectProvider 요소가 동일한
oauthProvider를 참조할 수 없습니다. 클라이언트 요소의
secret 속성 및 name 속성은 해당 OpenID
Connect 클라이언트의 client secret 및 client ID와
일치해야 합니다. 이 예는 기본 Liberty 서버 OpenID Connect
클라이언트에 적용됩니다. 참고: 이 예제에서 OP는 클라이언트의 SSL 포트가 443으로 설정될 것으로 예상합니다.
<openidConnectProvider id="OidcConfigSample" oauthProviderRef="OAuthConfigSample" /> <oauthProvider id="OAuthConfigSample"> <localStore> <client name="client01" secret="{xor}LDo8LTor" displayname="client01" scope="openid profile email" redirect="https://server.example.com:443/oidcclient/redirect/client01"/> </localStore> </oauthProvider>
참고: 올바른 클라이언트는 authorization_code 권한 부여 유형에 대한 해당 이름, 경로 재지정, 범위 및 시크릿을 등록해야 합니다. - 지원되는 OpenID Connect 신뢰 당사자(또는 클라이언트)의 서명자 인증서를 포함하도록 서버의 신뢰 저장소를 구성하십시오. 키 저장소에 대한 정보는 Liberty에 SSL 통신 사용의 내용을 참조하십시오.
- 구성된 신뢰 저장소를 사용하도록 서버의 SSL 구성을 수정하십시오.
<sslDefault sslRef="DefaultSSLSettings" /> <ssl id="DefaultSSLSettings" keyStoreRef="myKeyStore" trustStoreRef="myTrustStore" /> <keyStore id="myKeyStore" password="{xor}Lz4sLCgwLTs=" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> <keyStore id="myTrustStore" password="{xor}Lz4sLCgwLTs=" type="jks" location="${server.config.dir}/resources/security/BasicTrustStore.jks" />
OpenID Connect는 서버에 의해 지정되는 기본 SSL 구성을 사용하도록 구성되어 있습니다. 따라서 서버의 기본 SSL 구성에서는 OpenID Connect에 대해 구성되는 신뢰 저장소를 사용해야 합니다.
OpenID Connect의 사용자 승인 양식은 플러그 가능하므로 제공자가 자체 승인 양식을 작성하고 유지보수할 수 있게 합니다. 이 양식은 SSL을 통해 검색되므로 승인 양식이 호스팅되는 서버의 서명자 인증서를 포함하도록 신뢰 저장소를 구성해야 합니다. 기본 승인 양식이 사용될 때 OpenID Connect에 사용되는 신뢰 저장소가 Liberty 서버에서 사용하는 키 저장소와 다르도록 구성되어 있는 경우에는 Liberty 서버의 서명자 인증서를 OpenID Connect 신뢰 저장소로 가져와야 합니다.
참고: OpenID Connect를 사용하려면 scope 속성이 범위 목록에 openid를 포함해야 합니다.더 많은 OpenID Connect 제공자 구성 옵션에 대해서는 OpenID Connect Provider의 내용을 참조하십시오.
추가 OAuth 구성 옵션에 대해서는 OAuth의 내용을 참조하십시오.
선택사항: JSON 웹 토큰(JWT) 토큰을 access_token 토큰으로 발행하도록 Liberty OpenID Connect 제공자를 구성하십시오.
기본적으로, Liberty는 오파크 access_token 토큰을 발행합니다. 오파크 토큰은 토큰 수신인이 토큰을 발행한 서버에 콜백해야 합니다. oauthProvider 구성 요소에서 jwtAccessToken="true"를 설정하거나 com.ibm.wsspi.security.oauth20.JwtAccessTokenMediator 서비스 프로그래밍 인터페이스(SPI)를 구현하여 토큰 내에서 토큰 확인 메커니즘을 포함하는 access_token 토큰으로 JWT 토큰을 대신 발행하도록 Liberty OpenID Connect Provider를 구성할 수 있습니다.
인터페이스에 대한 자세한 정보는 WebSphere OAuth 2.0 웹 싱글 사인온 SPI 또는 ${wlp.install.dir}/dev/spi/ibm/ 디렉토리에서 제품과 함께 제공된 Java 문서를 참조하십시오.
선택사항: Liberty OpenID Connect Provider가 전송하는 id_token 토큰의 컨텐츠를 사용자 정의하십시오.
기본적으로 Liberty OpenID Connect Provider는 사용자 이름 및 그룹 멤버십 정보를 포함하는 id_token 토큰을 발행합니다. 다음 방법으로 토큰 컨텐츠를 사용자 정의할 수 있습니다.- com.ibm.wsspi.security.openidconnect.IDTokenMediator SPI를 구현하여
id_token 컨텐츠를 완전히 사용자 정의하십시오. SPI는 최고의 유연성을
제공하므로 고유한 사용자 정의 토큰을 빌드할 수 있습니다.
인터페이스에 대한 자세한 정보는 WebSphere OAuth 2.0 웹 싱글 사인온 SPI 또는 ${wlp.install.dir}/dev/spi/ibm/ 디렉토리에서 제품과 함께 제공된 Java 문서를 참조하십시오.
- 서버 구성에서 openidConnectProvider 요소의
customClaims 속성에서 추가 청구를 나열하여 연합 사용자 레지스트리에서
추가 사용자 속성을 페치하십시오. 청구 이름이 연합 사용자 레지스트리의
속성 이름과 다른 경우 claimToUserRegistryMap 요소의
속성에 청구 이름을 맵핑하십시오. 예를 들어, 다음 구성은 여러 청구를 추가하며 alias 청구를 seeAlso 레지스트리 속성에 맵핑하고 lastName 청구를 sn 속성에 맵핑합니다.
<openidConnectProvider id="MyOP" oauthProviderRef="MyOauth" customClaims= "alias, email, lastName, employeeType, office"> <claimToUserRegistryMap alias="seeAlso" lastName="sn"/> ... </openidConnectProvider>
자세한 정보는 UserInfo 엔드포인트에 의해 리턴되는 청구 구성의 내용을 참조하십시오.
- com.ibm.wsspi.security.openidconnect.IDTokenMediator SPI를 구현하여
id_token 컨텐츠를 완전히 사용자 정의하십시오. SPI는 최고의 유연성을
제공하므로 고유한 사용자 정의 토큰을 빌드할 수 있습니다.
결과
하위 주제
- OpenID Connect 제공자를 OAuth 2.0 권한 부여 서버로 사용
OpenID Connect 제공자를 일반적인 OAuth 2.0 권한 부여 제공자로 사용하여 OAuth 2.0 access_token을 발행하고 모든 OAuth 2.0 권한 부여 유형을 지원할 수 있습니다. - 발견 요청을 승인하도록 OpenID Connect Provider 구성
발견 구성 엔드포인트는 OpenID Connect Provider(OP) 서버가 지원하는 기능에 대해 정보를 사용할 수 있도록 만듭니다. - UserInfo 엔드포인트에 의해 리턴되는 청구 구성
UserInfo 엔드포인트가 리턴하는 청구를 사용자 정의하도록 Liberty OpenID Connect 제공자를 구성할 수 있습니다. - 다리가 두 개인 OAuth 요청을 사용하도록 OpenID Connect Provider 구성
일반 OAuth 플로우는 세 개의 "다리", 즉 클라이언트와 권한 부여 서버 사이의 상호작용 단계로 구성됩니다. 다리가 두 개인 OAuth 시나리오에서 클라이언트는 사전에 권한이 부여된 범위를 사용하므로 사용자와의 상호작용이 필요하지 않으며, 일반 플로우에서 다리 중 하나를 수행할 필요가 없습니다. 특히, 사용자는 권한 부여 서버에 대해 인증하거나 요청된 범위에서 지정된 정보 공유에 대해 승인을 제공할 필요가 없습니다. 대신, 요청된 모든 범위 매개변수는 사전에 권한 부여된 것으로 간주되고 자동으로 요청 토큰에 추가된 후 요청 토큰이 권한 부여 서버로 전송됩니다. - ID 토큰 서명을 위해 RSA-SHA256 알고리즘을 사용하도록 OpenID Connect 제공자 구성
ID 토큰 서명을 위해 RS256 알고리즘을 사용하도록 OpenID Connect 제공자를 구성할 수 있습니다. - 권한 부여를 위해 JWT(JSON Web Token)를 승인하도록 OpenID Connect 제공자 구성
액세스 토큰 대신 JWT(JSON Web Token)를 승인하도록 OpenID Connect 제공자 역할을 수행하는 Liberty 서버를 구성할 수 있습니다. - 클라이언트 등록 요청을 승인하도록 OpenID Connect 제공자 구성
클라이언트 등록 엔드포인트는 OpenID Connect 제공자를 사용하기 위해 OpenID Connect 신뢰 당사자에 대한 정보를 등록하고 업데이트하고 삭제하고 검색하는 데 사용되는 관리자 관리 서비스입니다. 등록 프로세스는 OAuth 2.0 클라이언트 ID 및 클라이언트 시크릿을 포함하여 신뢰 당사자가 사용하기 위해 필요한 정보를 제공합니다(지정되지 않은 경우). - OpenID Connect 사용자 정의 양식
사용자 인증을 위한 기본 양식 로그인 페이지를 바꾸거나 사용자 고유의 승인 양식을 개발하여 클라이언트 권한 데이터를 수집할 수 있습니다. - 사용자 인증
OpenID Connect 제공자는 사용자 인증을 위해 전통적인 J2EE(Java™ Platform, Enterprise Edition) FormLogin을 지원합니다.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_oidc_op
파일 이름: twlp_config_oidc_op.html