Sitecore。サービス。クライアントセキュリティ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
EntityServiceとItemServiceはWeb APIアクションフィルターを使って、リクエストを処理するか拒否するかを判断します。
Sitecore。Services.Clientは、2層のセキュリティを提供します:
- すべてのSitecoreに適用されるセキュリティポリシー。サービス。クライアントからのリクエスト。
- 実行されるリクエストに追加要件を追加できる個別フィルター。
ItemServiceには追加のセキュリティ設定があります:
-
セキュリティコンテキストのリクエスト – ItemServiceへのリクエストは現在のSitecoreユーザーのコンテキスト内で実行されます。
-
認証には2つのルートがあります:
- 認証/ログイン
- 認証/ログアウト
認証・ログインはHTTPS経由でリクエストしなければなりません。
JavaScriptからこのルートへのリクエストを出す際、クロスオリジンであるためにリクエストが失敗しないように、HTTPS経由でページ全体を読み込む必要があります。
!注HTTPSプロトコルの使用を強く推奨しますが、Services.Client/Sitecore.Services.Client.configファイルのSitecore.Services.AllowToLoginWithHttp設定のデフォルト値を上書きすることでHTTPプロトコルを使うことができます。デフォルト値はfalseです。この値がtrueされている場合、HTTPプロトコルを使って認証/ログインエンドポイントでログインすることが可能です。この設定を有効にするとセキュリティ上の脆弱性を引き起こす可能性があります。この設定の目的はコンテナおよび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。サービス。クライアントは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(サービス・インフラストラクチャー・ウェブ)。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セクションに追加してください。