Sitecore.Services.Clientのセキュリティ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
EntityServiceとItemServiceはWeb API ActionFiltersを使用して、要求を処理するか拒否するかを決定します。
Sitecore.Services.Clientは、次の2つのセキュリティ層を提供します。
-
すべてのSitecore.Services.Client要求に適用されるセキュリティ ポリシー。
-
実行される要求に追加の要件を追加できる個々のフィルター。
ItemServiceには、いくつかの追加のセキュリティ設定があります。
-
セキュリティ コンテキストの要求 – ItemServiceへの要求は、現在のSitecoreユーザーのコンテキストで実行されます。
-
認証には2つのルートがあります。
-
認証/ログイン
-
認証/ログアウト
認証 /ログイン のリクエストはHTTPS経由で行う必要があります。
JavaScriptからこのルートにリクエストを行う場合は、クロスオリジンであるためにリクエストが失敗するのを避けるために、ページ全体をHTTPS経由で読み込む必要があります。
メモHTTPSプロトコルを使用することを強くお勧めしますが、Services.Client/Sitecore.Services.Client.configファイルのSitecore.Services.AllowToLoginWithHttp設定の既定値を上書きすることでHTTPプロトコルを使用できます。デフォルト値はfalseです。この値がtrueの場合、HTTPプロトコルを使用してauth/loginエンドポイントでログインできます。この設定を有効にすると、セキュリティの脆弱性が発生する可能性があります。この設定の目的は、コンテナとSSLロードバランサーをサポートすることです。
-
-
匿名アクセス
デフォルトでは、extranet\AnonymousユーザーはItemServiceにアクセスできません。この動作は、Sitecore.Services.Client設定ファイルのSitecore.Services.AllowItemServiceAnonymousUser設定で変更します。
Sitecore.Services.AllowItemServiceAnonymousUserをtrueに設定すると、ItemServiceはSitecore.Services.AnonymousUser構成設定で定義されたユーザーのセキュリティ コンテキストで匿名要求を実行します。デフォルトでは、このようなリクエストは、ユーザー偽装を使用してsitecore\ServicesAPIユーザーとして実行されます。
Federated Experience Manager (FXM) を使用する場合は、CDインスタンスのセキュリティデータベースが有効になっていることを確認します。
セキュリティポリシー
セキュリティポリシー
Sitecore.Services.Clientには、次の3つのセキュリティ ポリシーが付属しています。
-
Sitecore.Services.Infrastructure.Web.Http.Security.ServicesOffPolicy: このポリシーは、すべてのEntityとItemServicesへのアクセスを拒否します。
-
Sitecore.Services.Infrastructure.Web.Http.Security.ServicesLocalOnlyPolicy: このポリシーは、リモート クライアントからのリクエストからのすべてのEntityとItemServicesへのアクセスを拒否します。
-
Sitecore.Services.Infrastructure.Web.Http.Security.ServicesOnPolicy: このポリシーは、すべてのEntityとItemServicesへのアクセスを許可します。
セキュリティ ポリシーは、Sitecore.Services.Client.configファイルのSitecore.Services.SecurityPolicy設定を使用して構成します。デフォルト値はServicesLocalOnlyPolicyです。
カスタム セキュリティ ポリシーを作成するには、Sitecore.Services.Infrastructure.Web.Http.Security.IAuthorizePolicyインターフェイスを実装し、Sitecore.Services.SecurityPolicy設定でカスタム クラス名を指定します。
セキュリティ ポリシーからコントローラーを除外する
使用するセキュリティポリシーからコントローラを除外できます。これを行うには、Sitecore.Services.Client.configファイルのapi/services/configuration/allowedControllersの下にallowedController要素を追加します。
認証フィルター
認証フィルター
Sitecore.Services.Client.config設定ファイルのsitecore/api/configuration/filtersセクションでは、Sitecore.Services.Clientがインストールするアクション フィルターを定義します。
デフォルトでは、次のフィルターがインストールされます。
-
Sitecore.Services.Infrastructure.Web.Http.Filters.AnonymousUserFilter
このフィルターにより、ItemServiceへの要求が認証されていないユーザーの構成設定を確実に尊重します。
-
Sitecore.Services.Infrastructure.Web.Http.Filters.SecurityPolicyAuthorisationFilter
このフィルターは、Sitecore.Services.SecurityPolicy設定で定義されたセキュリティ ポリシーを実行します。
-
Sitecore.Services.Infrastructure.Web.Http.Filters.RequireHttpsFilter (英語)
このフィルターにより、サイトへのすべてのWeb API要求に対してHTTPSが必須になります。デフォルトではコメントアウトされています。
-
Sitecore.Services.Infrastructure.Web.Http.Filters.ServicesRequireHttpsFilter (英語)
このフィルターにより、すべてのEntityService要求とItemService要求にHTTPSが必須になります。デフォルトではコメントアウトされています。
カスタム認証フィルター
カスタム認証フィルター
カスタム認証フィルターを作成するには:
-
System.Web.Http.Filters.AuthorizationFilterAttributeからフィルター クラスを派生させ、OnAuthorization(HttpActionContext actionContext) メソッドをオーバーライドします。
-
新しいフィルター クラス定義をSitecore.Services.Client.config設定ファイルのsitecore/api/configuration/filtersセクションに追加します。