Documentation

OAuth2スコープ

OAuth 2.0では、アプリケーションはユーザーデータの制限されたサブセットへのアクセスを許可されます。 これらは スコープ と呼ばれます(Liferayスコープと混同しないでください)。 これらは2つの方法で作成されます。

  1. 管理者が、スコープのサービスアクセスポリシーを作成する。

  2. 開発者が、JAX-RSエンドポイントを作成する。 デフォルトでは、スコープはJAX-RSエンドポイントでサポートされるHTTP動詞に基づいて生成されます。 特殊な注釈は、この動作をオーバーライドし、特定のスコープを登録します。

JSONWSサービスのスコープの作成

スコープを作成する最も一般的な方法は、OAUTH2_という名前のプレフィックスが付いたサービスアクセスポリシーを作成することです。 この命名規則により、ポリシーはOAuthアプリケーションの設定画面にスコープとして表示されます。

たとえば、アプリケーションがメールアドレスを取得するためにユーザーのプロファイル情報にアクセスする必要があるとします。 アプリケーションにアクセス許可を付与するには、 [Control Panel] → [Configuration] → [Service Access Policy] に移動し、次の図に示すポリシーを作成します。

図1:サービスアクセスポリシーは、OAuth 2.0アプリケーションのスコープを定義します。

このポリシーはデフォルトのポリシーではなく、UserServiceの1つのメソッドにのみアクセス権を付与することに注意してください。 これは、Service Builderによって生成されたJSONWS Webサービスです。 次のURLで、インストールで使用可能なすべてのサービスのリストを表示できます。

http://[host]:[port]/api/jsonws/

ポリシーを作成し、OAUTH2_プレフィックスを使用して名前を付けると、OAuth2管理の [Scopes] タブに表示されます。

図2:適切なプレフィックスを使用して名前が付けられたスコープが、アプリケーション設定の [Scopes]タブに表示されます。

これを選択して、アプリケーションを保存できます。

承認ページの作成

このステップはオプションです。 ユーザーは自分のアカウントへのアクセスを承認するためのインターフェイスを必要とし、1つは自動的に提供されます。 ただし、ページをカスタマイズする場合は、サイトに承認ページを作成できます。

  1. [Control Panel] → [System Settings] → [Security] → [OAuth2] に移動します。 左側の下部にある [Authorize Screen] という項目をクリックします。

     [OAuth2 Authorize]画面の設定ページ。

  2. 2つのデフォルトが表示されます。 1つ目は、承認ページのURLです。 デフォルトでは、/group/guest/authorize-oauth2-applicationです。 これは、デフォルトのサイトのURLと、authorize-oauth2-applicationと呼ばれるそのサイトのページに対応しています。

  3. デフォルトサイトの名前とURLをカスタマイズした場合は、ここで適切な変更を加えて、URLが次にそのサイトで作成するページと一致するようにします。 [保存] をクリックします。

  4. サイトの [Build] → [Pages] 画面に移動します。 (add)ボタンをクリックし、 [Private Page] を選択します。 ユーザーが強制的にログインします。

  5. [Full Page Application] タイプを選択します。

  6. ステップ2で設定したのと同じ名前をページに付けます。

  7. [Add this Page to the following Menus:] というラベルの付いたボックスをオフにします。 このページをサイトのナビゲーションに表示させないためです。

  8. 次に表示されるページで、フレンドリーURLがステップ2で設定したURLと一致することを確認します。

  9. [Full Page Application] の下で、 [OAuth2 Authorize Portlet] を選択します。

  10. [保存] をクリックします。

Excellent! ユーザーは、デフォルトまたはカスタムUIを使用して、承認プロセスを実行できます。 UIを作成し、スコープについて理解したので、次にアプリケーションでの承認プロセスを作成します。