Liberty에서 OAuth 2.0 보호 자원 구성

OAuth 2.0 보호 자원 서버로서 기능하도록 Liberty 서버를 구성할 수 있습니다.

이 태스크 정보

Liberty에서 openidConnectClient-1.0 기능을 사용으로 설정하고 기타 구성 정보 외에 inboundPropagation="required"를 설정하여 Liberty 서버를 OAuth 2.0 보호 자원 서버로 작동하도록 구성할 수 있습니다. OAuth 2.0 자원 서버에 대한 구성은 Liberty에 OpenID Connect 클라이언트 구성과 비슷합니다.

OAuth Bearer access_token의 처리에 있는 모든 당사자는 해당 토큰을 사용하여 Liberty의 연관 자원에 액세스할 수 있습니다. Liberty 서버는 OAuth 2.0 Token Introspection 엔드포인트 또는 OpenID Connect Userinfo 엔드포인트 중 하나를 호출하여 직접 OAuth 권한 부여 서버나 OpenID Connect 제공자에게 access_token을 원격으로 유효성 검증합니다.

프로시저

  1. openidConnectClient-1.0 Liberty 기능 및 기타 필요한 기능을 server.xml 파일에 추가하십시오. ssl-1.0 기능도 openidConnectClient-1.0 기능에 필요합니다. server.xml 파일의 featureManager 요소에 다음 요소 선언을 추가하십시오.
    <feature>openidConnectClient-1.0</feature> 	
    <feature>ssl-1.0</feature>
  2. openidConnectClient 요소를 구성하고, inboundPropagation=”required”를 추가하여 요소를 OAuth 2.0 보호 자원 서버로 사용 가능하게 설정하십시오. 다음은 Liberty 서버 OpenID Connect 제공자 및 OAuth 2.0 권한 부여 서버에 대해 작업하는 최소 구성의 예입니다.
    <openidConnectClient id="RS" inboundPropagation="required"		
      clientId="client01" 		
      clientSecret="{xor}LDo8LTor" 		
      validationEndpointUrl="https://server.example.com:443/oidc/endpoint/OP/introspect">		
    </openidConnectClient>
    참고: 이 샘플 구성에서, Liberty는 validationMethod="introspect"를 설정하여 OAuth 2.0 토큰 자체 검사를 수행합니다. 인증된 주제가 사용자 레지스트리를 요구하지 않고 자체 검사 엔드포인트로부터 직접 리턴되는 JSON 오브젝트로부터 작성됩니다.
    참고: Liberty가 토큰 자체 검사를 수행하도록 허용하려면, Liberty OAuth 2.0 자원 서버가 자신을 OAuth 권한 부여 서버 또는 OpenID Connect 제공자로서 OAuth 클라이언트에 등록해야 하며 토큰 자체 검사 요청을 수행할 수 있습니다. clientIdclientSecret는 권한 부여 서버에 의해 제공됩니다.
  3. 권한 부여 서버의 서명자 인증서를 포함하도록 서버의 신뢰 저장소를 구성하고 구성된 신뢰 저장소를 사용하도록 서버의 SSL 구성을 수정하십시오. 키 저장소에 대한 정보는 Liberty에서 SSL 통신 사용 설정을 참조하십시오.

    키 저장소에 대한 정보는 Liberty에서 SSL 통신 사용 설정을 참조하십시오.

  4. 선택사항: 사용자 레지스트리를 구성하십시오.

    권한 부여 서버에 의해 리턴되는 사용자 ID는 기본적으로 레지스트리 사용자에 맵핑되지 않으므로, 사용자 레지스트리에서 필요한 사용자가 없습니다. 하지만 openidConnectClient 요소의 mapIdentityToRegistryUser 속성이 true로 설정되는 경우에는 인증 및 권한 부여에 성공하기 위해 권한 부여 서버에서 리턴되는 적절한 ID에 대한 사용자 항목이 있어야 합니다. 사용자 레지스트리 구성에 대한 자세한 정보는 Liberty에서 사용자 레지스트리 구성을 참조하십시오.

  5. 선택사항: 인증 필터를 구성하십시오.

    openidConnectClient-1.0 기능이 사용으로 설정되고 openidConnectClient 요소가 authFilterRef 속성과 함께 구성되지 않을 때, 모든 인증되지 않은 요청 시도는 이 openidConnectClient 요소에 의해 인증됩니다.

    인증 필터 구성에 대한 자세한 정보는 인증 필터를 참조하십시오.

  6. 선택사항: 복수 openidConnectClient 요소와 복수의 인증 필터를 작성하여 복수 권한 부여 서버 및 OpenID Connect 제공자에 대해 작업하도록 Liberty를 OAuth 2.0 자원 서버로 구성할 수 있습니다. 각 openidConnectClient 요소는 하나의 권한 부여 서버 또는 OpenID Connect 제공자와의 하나의 신뢰 관계를 정의하며, authFilterRef 속성을 사용하여 하나의 인증 필터를 참조합니다.
  7. 선택사항: 토큰을 유효성 검증하고 validationMethod="userinfo"를 설정하여 OpenID Connect userinfo 엔드포인트로부터 사용자 정보를 수신하도록 Liberty 자원 서버를 구성할 수 있습니다.
  8. 선택사항: Liberty 자원 서버는 JSON으로 되어 있고 권한 부여 서버로부터 수신되는 청구를 사용하여 인증 주제를 작성하며, 사용자가 JSON을 해당 주제에 맵핑하는 방법의 규칙을 정의할 수 있습니다. OpenID Connect 클라이언트userIdentifier, groupIdentifier, UserUniqueIdentifier, realmIdentifierrealmName을 참조하십시오.
  9. 선택사항: Liberty OAuth 2.0 보호 자원 서버는 각 요청이 유효한 액세스 토큰을 제공할 것으로 예상하며 절대 인증을 위해 싱글 사인온 쿠키를 사용하지 않습니다. 그러나 authnSessionDisabled="false"를 설정하여 싱글 사인온 쿠키를 작성하도록 Liberty를 구성할 수 있습니다.
  10. 선택사항: 또한 com.ibm.wsspi.security.oauth.UserCredentialResolver SPI를 구현하여 프로그래밍 방식으로 JSON을 주제에 맵핑할 수 있습니다.

결과

이제 Liberty 서버를 OAuth 권한 부여 서버나 OpenID Connect 제공자와 통신할 수 있는 OAuth 2.0 보호 자원 서버로 구성하기 위해 필요한 최소 구성을 설정했습니다.

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



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