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

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

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

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

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

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

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

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

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

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

残りの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は、fetchgethasis、または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サービスアクセスポリシーを使用します。 ただし、トンネリングサーブレット用に独自のポリシーを作成し、TunnelingServletAuthVerifierservice.access.policy.nameプロパティを使用して、代わりに自分のポリシーを使用するように指定できます。

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

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

  2. [新規]をクリックします。

  3. ポリシーに名前を付けます。

  4. ポリシーを有効にするには、[Enabled]トグルを切り替えます。

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

  6. ポリシーにローカライズされたタイトルを付けます。

  7. [サービスシグネチャーを許可]で、インストールされているサービスクラスの完全修飾名を入力します。

  8. [メッソド名]で、サービスメソッド呼び出しの入力を開始します。

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

  9. 別のサービスまたはメソッドを指定するには、プラスアイコンをクリックして別のエントリを追加します。

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

ヒント

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

サービス・アクセス・ポリシーモジュールについて

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

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

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サービスには引き続き認証済みのアクセスが必要になります。