OAuth サービス・プロバイダーの定義

OAuth サービス・プロバイダーは、OAuth の名前付き構成オプション・セットです。プロバイダーの id または名前は、許可およびトークン・エンドポイントへのインバウンド要求の URL で指定されます。要求を処理する際に、そのプロバイダーの構成オプション・セットが使用されます。このプロセスにより、1 つのエンドポイント・サーブレットがある 1 つのサーバーで複数の 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.0 フィーチャーおよび ssl-1.0 フィーチャーを追加します。 OAuth はセキュア・プロトコルであるため、SSL が必須です。Liberty で、keyStore エレメントを使用して、SSL 用の鍵ストア・パスワードを指定する必要があります。デフォルトの鍵ストア・パスワードはありません。
    <featureManager>
      <feature>oauth-2.0</feature>
      <feature>ssl-1.0</feature>
    </featureManager>
  2. oauth-roles エレメントを使用して、OAuth Web アプリケーションのロール・マッピングをセットアップします。 OAuth は HTTP ベースのプロトコルであり、許可およびトークン・エンドポイントを処理するための Web アプリケーションが提供されています。この Web アプリケーションは、oauth-2.0 フィーチャーを指定した場合、自動的に組み込まれて開始されます。 ただし、authenticated ロールを 1 つ以上のユーザー、グループ、または特別な対象にマップする必要があります。クライアント構成を管理するために別のロール clientManager が提供されていますが、このロールをマップしなくても、OAuth 許可は機能します。
    <oauth-roles>
      <authenticated>
        <user>testuser</user>
      </authenticated>
    </oauth-roles>
  3. oauthProvider エレメントを使用して、1 つ以上のプロバイダーを定義します。 プロバイダーでは、少なくとも 1 つのクライアントが定義されている必要があります。localStore エレメントおよび client エレメントを使用して、クライアントをローカルで定義できます。 また、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. LDAP レジストリーまたは基本レジストリーのいずれかのユーザー・レジストリーを定義します。 LDAP レジストリーの場合は ldapRegistry-3.0 フィーチャー および ldapRegistry 構成エレメントを指定し、 基本レジストリーの場合は basicRegistry 構成エレメントを指定します。
    <basicRegistry id="basic" realm="BasicRealm">
      <user name="testuser" password="testuserpwd" />
    </basicRegistry>
  5. allowFailOverToBasicAuth Web アプリケーション・セキュリティー・プロパティーを true に設定します。
    <webAppSecurity allowFailOverToBasicAuth="true" />

タスクの結果

最小の OAuth 構成が定義されます。

以下の例は、1 つのクライアントを持つ単純な 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>

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_oauth_defining
ファイル名: twlp_oauth_defining.html