OAuth 서비스 제공자 정의

OAuth 서비스 제공자는 OAuth에 대해 명명된 구성 옵션 세트입니다. 제공자의 id나 이름은 권한 및 토큰 엔드포인트에 대한 인바운드 요청 URL에 지정됩니다. 요청을 처리할 때 해당 제공자에 대한 구성 옵션 세트가 사용됩니다. 이 프로세스를 통해 엔드포인트 서블릿 하나가 있는 서버 한 대가 여러 OAuth 구성을 효율적으로 제공할 수 있습니다.예를 들어, https://my.company.com:8021/oauth2/endpoint/photoShare/authorize URL은 이름이 photoShare인 OAuth 제공자에 대해 정의된 OAuth 구성 옵션 세트를 사용하여 처리됩니다. https://my.company.com:8021/oauth2/endpoint/calendarAuthz/authorize URL은 이름이 calendarAuthz인 OAuth 제공자에 대해 정의된 OAuth 구성 옵션 세트를 사용하여 처리됩니다.

이 태스크 정보

OAuth 서비스 제공자는 server.xml 파일의 oauthProvider 요소와 함께 정의됩니다. server.xml 파일을 편집하거나 WebSphere® Application Server Development Tools for Liberty를 사용하여 OAuth 서비스 제공자를 정의할 수 있습니다. 이 태스크에서는 최소 OAuth 구성을 정의하는 방법에 대해 설명합니다.

프로시저

  1. oauth-2.0ssl-1.0 기능을 추가하십시오. OAuth는 보안 프로토콜이므로 SSL이 필요합니다. Liberty에서 사용자는 keyStore 요소를 사용하여 SSL에 대한 키 저장소 비밀번호를 제공해야 합니다. 기본 키 저장소 비밀번호가 없습니다.
    <featureManager>
      <feature>oauth-2.0</feature>
      <feature>ssl-1.0</feature>
    </featureManager>
  2. oauth-roles 요소를 사용하여 OAuth 웹 애플리케이션에 대한 역할 맵핑을 설정하십시오. OAuth는 HTTP 기반 프로토콜이며 권한 및 토큰 엔드포인트를 처리하기 위해 웹 애플리케이션이 제공됩니다. 웹 애플리케이션은 기본 제공되며 oauth-2.0 기능을 지정할 때 자동으로 시작됩니다. 하지만 authenticated 역할을 하나 이상의 사용자, 그룹 또는 특수 주제에 맵핑해야 합니다. 또 다른 역할인 clientManager가 클라이언트 구성 관리를 위해 제공되지만 OAuth 권한에 대한 해당 역할을 기능에 맵핑할 필요는 없습니다.
    <oauth-roles>
      <authenticated>
        <user>testuser</user>
      </authenticated>
    </oauth-roles>
  3. oauthProvider 요소가 있는 제공자를 하나 이상 정의하십시오. 제공자에는 하나 이상의 클라이언트가 정의되어 있어야 합니다. 클라이언트는 localStoreclient 요소와 함께 로컬에 정의할 수 있습니다. 또한 클라이언트는 관계형 데이터베이스에 databaseStore 요소와 함께 정의할 수도 있습니다.
    <oauthProvider id="SampleProvider" filter="request-url%=ssodemo">
      <localStore>
        <client name="client01" secret="{xor}LDo8LTor"
                displayname="Test client number 1"
                redirect="http://localhost:1234/oauthclient/redirect.jsp"
                enabled="true" />
      </localStore>
    </oauthProvider>
  4. 사용자 레지스트리를 정의하십시오. (ldapRegistry-3.0 기능 및 ldapRegistry 구성 요소를 지정하여 LDAP 레지스트를 정의하거나 basicRegistry 구성 요소를 지정하여 기본 레지스트리를 정의합니다.)
    <basicRegistry id="basic" realm="BasicRealm">
      <user name="testuser" password="testuserpwd" />
    </basicRegistry>
  5. allowFailOverToBasicAuth 웹 애플리케이션 보안 특성을 true로 설정하십시오.
    <webAppSecurity allowFailOverToBasicAuth="true" />

결과

최소 OAuth 구성을 정의했습니다.

다음 예제에서는 하나의 클라이언트가 있는 단순 OAuth 제공자를 정의하는 샘플 server.xml 파일을 보여줍니다.
<server>

  <featureManager>
    <feature>oauth-2.0</feature>
    <feature>ssl-1.0</feature>
  </featureManager>
  <keyStore password="keyspass" />

  <oauth-roles>
    <authenticated>
      <user>testuser</user>
    </authenticated>
  </oauth-roles>

  <oauthProvider id="SampleProvider" filter="request-url%=ssodemo">
    <localStore>
      <client name="client01" secret="{xor}LDo8LTor"
              displayname="Test client number 1"
              redirect="http://localhost:1234/oauthclient/redirect.jsp"
              enabled="true" />
    </localStore>
  </oauthProvider>

  <webAppSecurity allowFailOverToBasicAuth="true" />

  <basicRegistry id="basic" realm="BasicRealm">
    <user name="testuser" password="testuserpwd" />
  </basicRegistry>

</server>

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

파일 이름: twlp_oauth_defining.html