2-legged OAuth 要求を使用可能にするための OpenID Connect プロバイダーの構成

標準的な OAuth フローは 3 つの「leg」(クライアントと認可サーバーとの間の対話のステージ) からなります。 leg が 2 つの (2-legged) OAuth シナリオでは、ユーザーとの対話が不要になるようにクライアントは事前認可済みのスコープを使用するので、 標準的なフローの leg のうちの 1 つは実行不要になります。具体的には、認可サーバーへの認証も、 要求されたスコープによって指定される情報を共有することへの同意も必要ありません。代わりに、すべての要求されたスコープ・パラメーターは事前認可済みであると見なされ、 自動的に要求トークンに追加されます。その後、この要求トークンが認可サーバーに送信されます。

始める前に

このタスクでは、OpenID Connect プロバイダーとして正しく構成された Liberty サーバーがあると想定しています。

このタスクについて

leg (ステージ) が 2 つのシナリオでは、Open ID Connect クライアントは、 grant typeclient_credential または resource owner password である 2-legged HTTP 要求を送信できます。これらの要求は認可エンドポイントを通過しないので、 要求されたスコープをユーザーが確認して承認するためのスコープ同意フォームはありません。 ただし、OpenID Connect プロバイダーが access_token コンテンツ内の認可済みスコープを扱う必要があることに変わりはありません。

2-legged OAuth 要求を処理するために装備された OpenID Connect プロバイダーとして構成された Liberty サーバーは、以下の基準を使用して、事前認可済みスコープを承認します。

  1. 要求の grant_type パラメーター値が client_credential または resource owner password であり、 かつ、要求が OAuth 2.0 要求である場合、要求に定義されているすべてのスコープは承認され、アクセス・トークンのコンテンツ内にコピーされます。これは、OAuth 2.0 フィーチャーの既存の動作です。
  2. 要求が OpenID Connect 要求または JWT Token OAuth である場合、以下の基準が使用されます。
    • 要求にスコープ・パラメーターが指定されていない場合、OpenID Connect プロバイダーは要求を受け入れません。
    • 要求されたスコープはクライアント構成の scope 属性によって定義されたスコープのリスト内になければならず、 クライアント構成の preAuthorizedScope リストにも指定されていなければなりません。

このタスクでは、2-legged OAuth 要求を使用可能にするための、OpenID Connect プロバイダーとして動作する Liberty の構成方法を示します。

手順

クライアントの事前認可済みスコープのリストを指定するため、 server.xml ファイル内の適切な <oauthProvider> エレメント内で、 クライアント構成の scope 属性および preAuthorizedScope 属性に、必要なスコープを追加します。以下の例では、 スコープ profile および email が、 OpenID Connect プロバイダーによって返されるアクセス・トークンのスコープ・リスト内に指定されるのに適格です。phone スコープは、 preAuthorizedScope リストに含まれていないため、事前認可済みスコープとは見なされません。
<oauthProvider id="OAuthConfigSample" ...>
 ....
           <localStore>           
             <client name="client01" secret="{xor}..."
               displayname="client01"
               scope="profile email phone"
               preAuthorizedScope="profile email"
               enabled="true"/>
             ....
           </localStore>
</oauthProvider>
注: 要求されたスコープがクライアント構成の scope 属性にリストされていない場合、 そのスコープは、返されるアクセス・トークンのスコープから除外されます。 要求されたスコープがクライアント構成の scope 属性にリストされているが、 クライアント構成の preAuthorizedScope リストに含まれていない場合、 OpenID Connect プロバイダーからの応答において invalid_grant エラーがトリガーされます。

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



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