Liberty에서 OAuth 2.0 보호 자원 구성

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

이 태스크 정보

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

OAuth Bearer access_token을 보유 중인 당사자는 해당 토큰을 사용하여 Liberty에서 연관 자원에 액세스할 수 있습니다. Liberty 서버는 OAuth 2.0 토큰 인트로스펙션 엔드포인트 또는 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>
    참고: 이 샘플 구성에서 LibertyvalidationMethod="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 제공자에서 작동하도록 OAuth 2.0 자원 서버로서 Liberty를 구성할 수 있습니다. 각 openidConnectClient 요소는 하나의 권한 부여 서버 또는 OpenID Connect 제공자와의 하나의 신뢰 관계를 정의하며, authFilterRef 속성을 사용하여 하나의 인증 필터를 참조합니다.
  7. 선택사항: validationMethod="userinfo"를 설정하여 토큰을 유효성 검증하고 OpenID Connect UserInfo 엔드포인트에서 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을 주제에 맵핑할 수 있습니다.

결과

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

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

파일 이름: twlp_config_oauth20_protected_resource.html