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을 원격으로 유효성 검증합니다.
프로시저
- 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>
- 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 클라이언트에 등록해야 하며
토큰 자체 검사 요청을 수행할 수 있습니다. clientId 및
clientSecret는 권한 부여 서버에 의해 제공됩니다.
- 권한 부여 서버의 서명자 인증서를 포함하도록 서버의 신뢰 저장소를 구성하고
구성된 신뢰 저장소를 사용하도록 서버의 SSL 구성을 수정하십시오. 키 저장소에 대한 정보는
Liberty에서 SSL 통신 사용 설정을 참조하십시오.
키 저장소에 대한 정보는 Liberty에서 SSL 통신
사용 설정을 참조하십시오.
- 선택사항: 사용자 레지스트리를 구성하십시오.
권한 부여 서버에 의해 리턴되는 사용자 ID는 기본적으로 레지스트리 사용자에
맵핑되지 않으므로, 사용자 레지스트리에서 필요한 사용자가 없습니다. 하지만
openidConnectClient 요소의 mapIdentityToRegistryUser
속성이 true로 설정되는 경우에는 인증 및 권한 부여에
성공하기 위해 권한 부여 서버에서 리턴되는 적절한 ID에 대한 사용자 항목이
있어야 합니다. 사용자 레지스트리 구성에 대한 자세한 정보는 Liberty에서 사용자 레지스트리 구성을 참조하십시오.
- 선택사항: 인증 필터를 구성하십시오.
openidConnectClient-1.0 기능이 사용으로 설정되고
openidConnectClient 요소가 authFilterRef
속성과 함께 구성되지 않을 때, 모든 인증되지 않은 요청 시도는 이
openidConnectClient 요소에 의해 인증됩니다.
인증 필터 구성에 대한 자세한 정보는
인증 필터를
참조하십시오.
- 선택사항: 복수 openidConnectClient 요소와 복수의
인증 필터를 작성하여 복수 권한 부여 서버 및 OpenID Connect 제공자에 대해
작업하도록 Liberty를 OAuth 2.0 자원 서버로 구성할 수 있습니다. 각
openidConnectClient 요소는 하나의 권한 부여 서버 또는 OpenID Connect
제공자와의 하나의 신뢰 관계를 정의하며, authFilterRef 속성을 사용하여
하나의 인증 필터를 참조합니다.
- 선택사항: 토큰을 유효성 검증하고 validationMethod="userinfo"를
설정하여 OpenID Connect userinfo 엔드포인트로부터 사용자 정보를
수신하도록 Liberty 자원 서버를 구성할 수 있습니다.
- 선택사항: Liberty 자원 서버는 JSON으로 되어 있고 권한 부여 서버로부터 수신되는
청구를 사용하여 인증 주제를 작성하며, 사용자가 JSON을 해당 주제에 맵핑하는
방법의 규칙을 정의할 수 있습니다. OpenID Connect 클라이언트의
userIdentifier, groupIdentifier, UserUniqueIdentifier,
realmIdentifier 및 realmName을 참조하십시오.
- 선택사항: Liberty OAuth 2.0 보호 자원 서버는 각 요청이 유효한 액세스 토큰을 제공할 것으로
예상하며 절대 인증을 위해 싱글 사인온 쿠키를 사용하지 않습니다. 그러나
authnSessionDisabled="false"를 설정하여 싱글 사인온 쿠키를
작성하도록 Liberty를 구성할 수 있습니다.
- 선택사항: 또한 com.ibm.wsspi.security.oauth.UserCredentialResolver
SPI를 구현하여 프로그래밍 방식으로 JSON을 주제에 맵핑할 수
있습니다.
결과
이제 Liberty 서버를 OAuth 권한 부여 서버나 OpenID Connect
제공자와 통신할 수 있는 OAuth 2.0 보호 자원 서버로 구성하기 위해
필요한 최소 구성을 설정했습니다.