---
title: "Sitecore。サービス。クライアントセキュリティ"
slug: "sitecore-services-client-security"
abstract: "SSCを使用する際のセキュリティ上の考慮事項について説明しています"
---
# Sitecore。サービス。クライアントセキュリティ

EntityServiceとItemServiceはWeb API[アクションフィルター](http://msdn.microsoft.com/en-us/library/system.web.http.filters.actionfilterattribute.aspx)を使って、リクエストを処理するか拒否するかを判断します。

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セクションに追加してください。