Liberty에서 OpenID Connect 제공자 구성

웹 싱글 사인온을 이용하기 위해 OpenID Connect 제공자 또는 권한 부여 서버 역할을 수행하도록 Liberty 서버를 구성할 수 있습니다.

이 태스크 정보

기타 구성 정보 외에도 Liberty의 openidConnectServer-1.0 기능을 사용으로 설정하여 OpenID Connect 제공자 역할을 수행하도록 Liberty 서버를 구성할 수 있습니다.

프로시저

  1. openidConnectServer-1.0 Liberty 기능 및 기타 필요한 기능을 server.xml 파일에 추가하십시오. openidConnectServer-1.0 기능에는 ssl-1.0 기능도 필요합니다.
    <feature>openidConnectServer-1.0</feature>
    <feature>ssl-1.0</feature>
  2. 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, introspectTokensfunctionalUserId와 기타 속성을 등록할 수 있습니다.

  3. oauthProviderRef 속성이 구성된 oauthProvider를 참조하는 openidConnectProvider 요소를 추가하십시오. 각각의 oauthProvider는 하나의 openidConnectProvider에 의해서만 참조될 수 있으므로 둘 이상의 openidConnectProvider 요소가 동일한 oauthProvider를 참조할 수 없습니다. 클라이언트 요소의 secret 속성 및 name 속성은 해당 OpenID Connect 클라이언트의 client secretclient 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 권한 부여 유형에 대한 해당 이름, 경로 재지정, 범위 및 시크릿을 등록해야 합니다.
  4. 지원되는 OpenID Connect 신뢰 당사자(또는 클라이언트)의 서명자 인증서를 포함하도록 서버의 신뢰 저장소를 구성하십시오. 키 저장소에 대한 정보는 Liberty에 SSL 통신 사용의 내용을 참조하십시오.
  5. 구성된 신뢰 저장소를 사용하도록 서버의 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의 내용을 참조하십시오.

  6. [16.0.0.3 이상]선택사항: 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 문서를 참조하십시오.

  7. [16.0.0.4 이상]선택사항: 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 엔드포인트에 의해 리턴되는 청구 구성의 내용을 참조하십시오.

결과

OpenID Connect 클라이언트로 구성된 기타 Liberty 서버와 통신할 수 있는 OpenID Connect Provider로 Liberty 서버를 구성하기 위해 필요한 최소 구성을 완료했습니다.

주제의 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_config_oidc_op
파일 이름: twlp_config_oidc_op.html