Securing Web Services
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

サービスアクセスポリシーの設定

サービスアクセス ポリシー は、リモートで呼び出すことができるサービスまたはサービス メソッドを定義します。それらを複数同時に適用することで、複合的な効果を生み出すことができます。 IPパーミッションに次ぐ)ウェブサービスの第二のセキュリティ層である。ポータル管理者は、カスタムサービスアクセスポリシーを作成できます。それらはその後、ポータルのトークン認証システム(OAuth 2)によって適用されます。

サービスアクセスポリシーは、Webサービス呼び出しによって公開されるメソッドのホワイトリストを定義します。ワイルドカードを使用して、ホワイトリストに登録されたクラスとメソッドを定義できます。サービスアクセスポリシーは、権限システムを尊重することに注意してください。ポリシーがユーザーにリモートサービスへのアクセスを許可する場合、そのユーザーは引き続き、そのサービスを呼び出すための適切な権限を持っている必要があります。

デフォルトのサービスアクセスポリシー

サービス アクセス ポリシーを表示および管理するには、 グローバル メニュー (Global Menu) を開き、 コントロール パネル → サービス アクセス ポリシー に移動します。

デフォルトで有効になっているサービスアクセスポリシーは18個あります。

デフォルトで有効になっているサービスアクセスポリシーは18個あります。これらのうち11件はシステム関連のものです。

サービスアクセスポリシー説明デフォルトで有効
資産カテゴリデフォルトカテゴリ検索が可能になります。✔
アセットエントリデフォルトアセットが取得された際に、アセットの閲覧カウンターを更新できるようにします。✔
アセットタグデフォルトタグによる検索が可能になります。✔
認証済み_OAUTH2_SAPOAuth 2によって承認されたすべてのRESTリクエストを許可します。✔
カレンダー_デフォルトカレンダーに掲載されている公開イベントを検索できるようになります。✔
CAPTCHA_DEFAULT認証なしのリクエストでヘッドレスCAPTCHA APIにアクセスできるようにします。✔
コマースデフォルトコマースサービスのすべてのAPIにアクセスできるようになります。カレンダー。✔
オブジェクトデフォルトオブジェクトエントリのすべてのAPIにアクセスできるようになります。✔
検索候補国/地域サービスへのアクセスを可能にし、ユーザーがその場で言語を切り替えることができるようにします。認証されていないリクエストを含む、すべてのリクエストに適用されます。✔
システムデフォルト国/地域サービスへのアクセスを可能にし、ユーザーがその場で言語を切り替えることができるようにします。認証されていないリクエストを含む、すべてのリクエストに適用されます。✔
システムユーザーパスワード任意のメソッドの呼び出しを可能にします。もちろん、API関数には権限チェックが含まれているため、この呼び出しはユーザーが必要な権限を持っている場合にのみ機能します。これは、 AuthVerifierResult.isPasswordBasedAuthentication が trueであるリクエストに適用されます。つまり、ユーザー認証がパスワードを使用して行われた場合です。特定の API 関数の呼び出しを完全に禁止したい場合は、 SYSTEM_USER_PASSWORD ポリシーを * よりも制限の厳しいものに変更できます。✔
注記

SYSTEM_DEFAULT、および Default が Yes に設定されているその他のポリシーは、認証されていないリクエストを含むすべての受信リクエストに適用されます。

残りの7つのポリシーは、OAuthおよびJSONウェブサービスに関するものです。

サービスアクセスポリシー説明デフォルト設定で有効
OAUTH2_analytics.read/writeLiferay Analytics Cloudと統合し、JSON Web サービスへのアクセスを可能にします。✔
OAUTH2_everything/read/documents/userprofile/writeEverythingポリシーは、さまざまな理由ですべてのJSON Webサービスへのアクセスを許可します。 Everythingとはすべて、つまりすべてのJSON Webサービスです(*に一致)。その他は、その説明に適したメソッドシグネチャと一致します。たとえば、OAUTH2_everything.readは、fetch、get、has、is、またはsearchで始まるすべてのメソッドに一致します。✔

デフォルト設定では、システムに付属するすべてのWebサービスへのアクセスを提供する対応するスコープが使用可能になります。 OAuth 2アプリケーションは、スコープを事前に割り当てておくことで使用可能になります。管理者は、使用するスコープを確認し、他のスコープを無効にする必要があります。

サービスアクセスポリシーの理解

サービス・アクセス・ポリシーを作成または編集するときは、次の点に注意してください。

  • サービスアクセスポリシー名は、ポータルインスタンスごとに一意である必要があります。

  • サービスアクセスポリシー名には、許可されている文字のみを含めることができます。

    0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#:@-./_
    
  • サービスアクセスポリシーのタイトルはローカライズできますが、サービスアクセスポリシー名はローカライズできません。

  • 有効な署名は、1行に1つずつ入力してください。ワイルドカード(*)は、クラス名とメソッド名の両方に使用できます。クラス名とメソッド名を区切るには、 # 記号を使用する必要があります。

たとえば、com.liferay.portal.kernel.service.UserServiceでは、UserServiceクラスの任意のメソッドを呼び出すことができます。 com.liferay.document.library.kernel.service.DLAppService#get*を使用すると、getで始まるDLAppServiceの任意のメソッドを呼び出すことができます。

次の例では、UserServiceクラスの任意のメソッドを呼び出すことができ、名前がgetで始まるDLAppServiceの任意のメソッドを呼び出すことができます。

com.liferay.portal.kernel.service.UserService
com.liferay.document.library.kernel.service.DLAppService#get*

デフォルトポリシーのカスタマイズ

デプロイされたアプリケーションや特定のモジュールのニーズに合わせて、デフォルトのサービスアクセスポリシーを上書きまたは調整できます。

デプロイされたLiferayアプリケーションは、独自のデフォルトポリシーを宣言できます。これらの設定は、管理者によって変更または無効化される可能性があります。プラグインは、ポリシーを再定義または更新した場合でも、ポリシーが存在することを常に検証できます。

デフォルトでは、LiferayのトンネリングサーブレットはSYSTEM_USER_PASSWORDサービスアクセスポリシーを使用します。ただし、トンネリングサーブレット用に独自のポリシーを作成し、TunnelingServletAuthVerifierのservice.access.policy.nameプロパティを使用して、代わりに自分のポリシーを使用するように指定できます。

サービスアクセス ポリシーの作成

  1. グローバルメニュー (Global Menu) を開き、セキュリティの下にある コントロール パネル → サービス アクセス ポリシー に移動します。

  2. 新規 をクリックしてください。

  3. 保険契約に名前を付けましょう。

  4. 有効 トグルを切り替えて、ポリシーを有効にします。

  5. (オプション)認証されていないリクエストと認証済みのリクエストの両方にポリシーを適用する場合は、 を切り替え、デフォルトは とします。

  6. ポリシーに地域に合わせたタイトルを付けましょう。

  7. 「許可されたサービス署名」に、インストールされているサービス クラスの完全修飾名を入力します。

  8. メソッド名の下に、サービスメソッドの呼び出しを入力します。

    注記

    コード補完は、 サービス クラス と メソッド名 フィールドの両方で使用できます。

  9. 別のサービスまたは方法を指定するには、プラスアイコンをクリックして項目を追加してください。

  10. 完了したら、 保存 をクリックします。

ヒント

メソッドのシグネチャを事前にすべて把握している場合は、 をクリックして詳細モードに切り替え、 をクリックして、それらをすべて 1 つのフィールドに別々の行で入力できます。

サービスアクセスポリシーモジュールの理解

Liferayのサービス・アクセス・ポリシー機能は、サービス・アクセス・ポリシーモジュールによって提供されます。このモジュールには、次の重要なクラスが含まれています。

  • com.liferay.portal.kernel.security.service.access.policy.ServiceAccessPolicy: ServiceAccessPolicy のパブリックインターフェイスを定義します。
  • com.liferay.portal.kernel.security.service.access.policy.ServiceAccessPolicyManager:ServiceAccessPolicyのインスタンスを取得するためのパブリックインターフェースを定義します。
  • com.liferay.portal.kernel.security.service.access.policy.ServiceAccessPolicyManagerUtil:サービス・アクセス・ポリシー機能を、まだモジュール化されていないLiferayのコアの部分にブリッジします。
  • com.liferay.portal.kernel.security.service.access.policy.ServiceAccessPolicyThreadLocal:ServiceAccessPolicyインスタンスをアクティブにします。

Liferay のサービス アクセス ポリシー モジュールは、ソース コードの modules/apps/service-access-policy フォルダーにあります。次の3つのバンドルを実行すると、サービス・アクセス・ポリシー機能が提供されます(これらは[Liferay Home]/osgi/modulesフォルダにあります)。

  • com.liferay.service.access.policy.api.jar
  • com.liferay.service.access.policy.service.jar
  • com.liferay.service.access.policy.web.jar

これらのモジュールは、コントロールパネルからアクセスできるサービス・アクセス・ポリシー管理UIを提供します。また、ServiceAccessPolicyのインターフェースとデフォルト実装も提供します。

サービスアクセスポリシーモジュールの設定

  1. グローバルメニュー (Global Menu) を開き、 コントロールパネル → システム設定 → API 認証 に移動します。

    サービスアクセスポリシーにアクセスしてください。

  2. セキュリティ セクションの サービス アクセス ポリシー に移動します。必要に応じてエントリ名を変更し、 保存 をクリックします。

デフォルトのサービスアクセスポリシー設定を編集できます。 AuthVerifier がポリシーを適用しない場合、デフォルトポリシーを強制的に適用できます。

また、 AuthenticatedAccessControlPolicy もあります。 ServiceAccessPolicyManager の実装が存在する場合、このポリシーは何も実行しません。ただし、サービス アクセス ポリシー モジュールが無効になっている場合、 AuthenticatedAccessControlPolicy は、Web サービスに対して認証されたアクセスを依然として必要とするフォールバックを提供します。