OAuth2スコープ¶
OAuth 2.0では、アプリケーションはユーザーデータの制限されたサブセットへのアクセスを許可されます。 これらは スコープ と呼ばれます(Liferayスコープと混同しないでください)。 これらは2つの方法で作成されます。
管理者が、スコープのサービスアクセスポリシーを作成する。
開発者が、JAX-RSエンドポイントを作成する。 デフォルトでは、スコープはJAX-RSエンドポイントでサポートされるHTTP動詞に基づいて生成されます。 特殊な注釈は、この動作をオーバーライドし、特定のスコープを登録します。
JSONWSサービスのスコープの作成¶
スコープを作成する最も一般的な方法は、OAUTH2_
という名前のプレフィックスが付いたサービスアクセスポリシーを作成することです。 この命名規則により、ポリシーはOAuthアプリケーションの設定画面にスコープとして表示されます。
たとえば、アプリケーションがメールアドレスを取得するためにユーザーのプロファイル情報にアクセスする必要があるとします。 アプリケーションにアクセス許可を付与するには、 [Control Panel] → [Configuration] → [Service Access Policy] に移動し、次の図に示すポリシーを作成します。
このポリシーはデフォルトのポリシーではなく、UserService
の1つのメソッドにのみアクセス権を付与することに注意してください。 これは、Service Builderによって生成されたJSONWS Webサービスです。 次のURLで、インストールで使用可能なすべてのサービスのリストを表示できます。
http://[host]:[port]/api/jsonws/
ポリシーを作成し、OAUTH2_
プレフィックスを使用して名前を付けると、OAuth2管理の [Scopes] タブに表示されます。
これを選択して、アプリケーションを保存できます。
承認ページの作成¶
このステップはオプションです。 ユーザーは自分のアカウントへのアクセスを承認するためのインターフェイスを必要とし、1つは自動的に提供されます。 ただし、ページをカスタマイズする場合は、サイトに承認ページを作成できます。
[Control Panel] → [System Settings] → [Security] → [OAuth2] に移動します。 左側の下部にある [Authorize Screen] という項目をクリックします。
2つのデフォルトが表示されます。 1つ目は、承認ページのURLです。 デフォルトでは、
/group/guest/authorize-oauth2-application
です。 これは、デフォルトのサイトのURLと、authorize-oauth2-application
と呼ばれるそのサイトのページに対応しています。デフォルトサイトの名前とURLをカスタマイズした場合は、ここで適切な変更を加えて、URLが次にそのサイトで作成するページと一致するようにします。 [保存] をクリックします。
サイトの [Build] → [Pages] 画面に移動します。 (
)ボタンをクリックし、 [Private Page] を選択します。 ユーザーが強制的にログインします。
[Full Page Application] タイプを選択します。
ステップ2で設定したのと同じ名前をページに付けます。
[Add this Page to the following Menus:] というラベルの付いたボックスをオフにします。 このページをサイトのナビゲーションに表示させないためです。
次に表示されるページで、フレンドリーURLがステップ2で設定したURLと一致することを確認します。
[Full Page Application] の下で、 [OAuth2 Authorize Portlet] を選択します。
[保存] をクリックします。
Excellent! ユーザーは、デフォルトまたはカスタムUIを使用して、承認プロセスを実行できます。 UIを作成し、スコープについて理解したので、次にアプリケーションでの承認プロセスを作成します。