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

認証検証子の使用

認証検証は、Liferay Portal の API のリモート呼び出しを集中的かつ拡張可能な方法で認証します。 彼らには主に 2 つの責任があります。

  1. 登録された AuthVerifier インスタンスを使用して提供された資格情報を検証します
  2. 検証結果に基づいてポータル認証コンテキストを作成する

利用可能な AuthVerifier が提供された資格情報がユーザー アカウントと一致することを判断できない場合、ゲスト ユーザーに対して認証されていないアクセスをサポートする承認コンテキストが作成されます。 これにより、各 API は単一の API エンドポイントのみを公開できるようになります。 対照的に、Liferay Portal のレガシー (6.2 より前) バージョンでは、各 API に対して 2 つの API エンドポイントが公開されていました。 /api/endpoint URI は認証されていないアクセス用であり、URI /api/secure/endpoint は認証されたアクセス用でした。

リモート クライアントが HTTP 基本認証または HTTP ダイジェスト認証を使用する場合、要求パラメーターで資格情報を送信する場合、認証された JSESSIONIDを送信する場合、または共有シークレットを使用して信頼を確立する場合など、最も一般的な状況に対応する組み込みの AuthVerifier 実装があります。 その他の AuthVerifier 実装は、OSGi ランタイムにサービスとして登録されている AuthVerifier インターフェースの実装を含むモジュールとしてデプロイできます。

重要

認証検証レイヤーの重点は、資格情報の提供ではなく、認証の検証にあります。 トークンや資格情報を発行したり、サインイン ポートレットを表示したりしません。 代わりに、このレイヤーは既存の資格情報と認証されたセッションを検証し、認証エンドポイントを補完します。 下位互換性を確保するために、デフォルトの実装では、ユーザー名とパスワードの資格情報を提供する要求がサポートされています。 したがって、認証検証層は、認証と認可の境界に位置します。

認証検証プロセス

認証検証を構成するには、 コントロール パネル構成システム設定セキュリティAPI 認証に移動します。

認証検証設定画面

ステップ1: リクエストの資格情報を確認する

このレイヤーは、責任の連鎖設計パターンを使用して、組み込みおよびサードパーティの AuthVerifier 実装の両方をサポートします。 各 AuthVerifier は、マップされた URL やその他のプロパティを指定する構成を提供できます。

各受信リクエストは、登録されているすべての AuthVerifierと照合され、リクエストの処理に使用される最終的な AuthVerifierリストが選択されます。 受信したリクエストの資格情報を検証するのは、各 AuthVerifier の責任です。

ステップ2: 認可コンテキストを作成する

リクエストがすべての一致する AuthVerifierによって処理されると、Liferay DXP は解決されたユーザーの認可コンテキストを作成します。

これには、解決されたユーザー ID 設定 HttpServletRequest remoteUser を解決されたユーザーに返すように設定することが含まれます。 ThreadLocal

解決されるユーザーは、 AuthVerifier インスタンスのいずれかによって返されるユーザー、または提供された資格情報を検証できるインスタンスがなかった場合はゲスト ユーザーになります。

組み込み認証検証の設定

AuthVerifierは開発者によって作成され、OSGi ランタイムに登録されている限り自動的に処理されます。 このレイヤーと周囲のプロセスは、 AuthVerifierFilter クラスによって提供され、このクラスは javax.servlet.Filter インターフェイスを実装します。 製品に付属する認証検証の構成は次のとおりです。

*デフォルトで有効になっており、追加の設定不要でリモートAPIにアクセスするために使用できます。

Basic認証ヘッダー

この認証検証により、リモート クライアントは HTTP 基本認証を使用して認証できるようになります。 この方法で認証する必要がある URL パスを指定して構成します。 [Force Basic Authentication]フィールドがオンになっている場合は、HTTP基本認証が必要です。

Web サービスのデフォルトの URL は /api/*,/xmlrpc* です。 マッピングは /api/liferay* を除外し、 TunnelServletへのアクセスを防止します。 詳細については、「トンネルAuthentication Verifier」をご覧ください。

ダイジェスト認証ヘッダー

この認証検証により、リモート クライアントは HTTP ダイジェスト認証を使用して認証できるようになります。 この方法で認証する必要がある URL パスを指定して構成します。 [Force Digest Authentication]フィールドがオンになっている場合は、HTTP基本認証が必要です。

この認証検証はデフォルトでは有効になっていません。

HTTPトンネルエクステンダー

Liferay はモジュール性を採用したため、このエクステンダーはモジュールを TunnelServletの一部にできるようにするために作成されました。 TunnelServletTunnelingServletAuthVerifier をモジュール サーブレット コンテキストにマッピングします。 マニフェストに Http-Tunnel が含まれるモジュールは、Tunnel Servlet を利用し、 /o/_module_/api/liferay/do経由で API を公開できます。

トンネリングを許可するクライアント IP アドレスを設定して構成します。 詳細については、 プロパティのドキュメントリモート ステージングを参照してください。

これはリモート API をエクスポートするための推奨される方法ではないことに注意してください。JAX-RS または Liferay JSON Web サービステクノロジーを使用してリモート サービスを公開する方がはるかに適切です。

画像リクエスト認証検証者

LibreOffice/OpenOffice に接続すると、Office プロセスは画像付きのドキュメントをレンダリングするために Liferay Portal から画像をダウンロードする必要があります。 これを行うには、画像に安全にアクセスするための JWT トークン が作成されます。

必要に応じて、許可されるホスト、含める URL、除外する URL を設定してこれを構成しします。

この認証検証はデフォルトでは有効になっていません。

ポータルセッションAuth Verifiers

ブラウザの JavaScript を有効にして、既存のポータル セッションを使用して Liferay JSON Web サービスにアクセスできるようにします。

デフォルト構成では、URL が含まれるフィールドは、従来の JSON リモート サービス レイヤーへのアクセスを保護します: /api/json*、/api/jsonws*、/c/portal/json_service*

パラメータのAuth Verifiersを要求する

RequestParameterAutoLogin との下位互換性のために、HTTP リクエスト パラメータ parameterAutoLoginLogin および parameterAutoLoginPassword内の資格情報を使用してポータル エンドポイントを認証し、アクセスできます。

この認証検証はデフォルトでは有効になっていません。

トンネル認証検証

TunnelServlet は、ポータルのリモート サービスへのアクセスを提供するために /api/liferay/do にマップされたレガシー リモート API エンドポイントです。 トンネル認証検証機能は、ユーザーに代わって、提供された任意のユーザー ID を使用して、信頼できるリモート クライアントが認証されたアクセスを許可します。

信頼できるリモート クライアントの例としては、ステージング リモート公開機能があります。

信頼できるリモート クライアントは、ポータル プロパティ tunneling.servlet.shared.secretに保存されている共有シークレットを使用して認証します。 デフォルト値は空で、すべてのアクセスが禁止されます。

デフォルト設定はデフォルトで有効になっていますが、アクセスはローカルホストのみに制限されます。 トンネリングを許可するクライアント IP アドレスを設定して構成します。 詳細については、 プロパティのドキュメントリモート ステージングを参照してください。

サービス・アクセス・ポリシー