---
title: "Sitecore ServicesクライアントAPIキーを作成"
slug: "create-a-sitecore-services-client-api-key"
abstract: "Sitecore ServicesのクライアントAPIキーを使って、JSSアプリにSitecore Headless Servicesの使用を許可します。"
---
# Sitecore ServicesクライアントAPIキーを作成

レイアウト [サービス](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/layout-service.html "Layout Service")、[GraphQL](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/graphql.html "GraphQL")、[トラッキングサービス](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/tracking-service.html "Tracking Service")、[辞書サービス](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/dictionary-service.html "Dictionary Service")など、JSSで使用されるサービスは、[Sitecore Services Client(SSC)が提供するAPIキーメカニズム](https://doc.sitecore.com/xp/en/developers/102/sitecore-experience-manager/api-keys-for-the-odata-item-service.html)を利用しています。SitecoreサービスのクライアントAPIキーを作成し、JSSアプリをSitecoreに接続する際に使用するためにそのItem IDを記録する必要があります。

SitecoreサービスクライアントAPIキーを作成するには:

1.  Sitecoreにログインし、*Desktop*アプリケーションを開き、coreまたはmasterデータベースを選択します。
    
    > !注Sitecore 9.0では、右下のデータベースアイコンを使って *コア* データベースに切り替えます。Sitecore 9.1以降では、SitecoreサービスのクライアントAPIキーは *マスター* データベースに保存されており、これがデフォルトであるため、このステップは不要です。
    > 
    > ![Switch the database to master in Sitecore 9.0.](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/hd/19/sitecore-headless-development/images/switch-core-db.png)
    
2.  スタートメニューまたはSitecore Launchpadから*Content Editor*アプリケーションを開いてください。
    
3.  コンテンツツリーで */sitecore/system/Settings/Services/API Keys*に移動します。
    
4.  *Home*リボンに新しい*API Key*アイテムを挿入します。アイテム名は参考用です。JSSアプリの名前など、意味のある名前を選びましょう。
    
5.  APIキーに以下のフィールドを設定します:
    
    -   *CORSオリジン:**接続モード*を使用している場合、APIは[CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)をサポートしている必要があり、開発サーバーホストがデフォルトhttp://localhost:3000、ヘッドレスサービスへのHTTPリクエストを許可しています。ローカル開発では、\*を使ってすべてのオリジンを許可してください。本番環境では、特定のオリジンのみを許可してください。[複数のオリジン](/xp/en/developers/102/sitecore-experience-manager/en/api-keys-for-the-odata-item-service.html)をセミコロンで区切って指定;。
        
    -   *許可されたコントローラー:* すべてのコントローラーを許可するためにアスタリスク \* を使うことは可能ですが、コントローラーを明示的にホワイトリストに登録するのがベストプラクティスです。追加のコントローラーを使用する場合は、それらもこのリストに追加しなければなりません。例えば:
        
        Sitecore.LayoutService.Mvc.Controllers.LayoutServiceController;
         Sitecore.JavaScriptServices.Globalization.Controllers.DictionaryServiceController;
         Sitecore.Services.GraphQL.Hosting.Mvc.GraphQLController;
         GraphQL:/api/yourappname
        
    -   *なりすましユーザー:* 必ず明示的なユーザーを指定します。なりすましユーザーは、JSSアプリのコンテンツSitecoreセキュリティ権限を決定するためにセキュリティコンテキストを用いるSitecoreユーザーのことです。ほとんどのアプリはextranet\\anonymousを使用しなければならず、匿名のウェブユーザーと同じセキュリティコンテキストを持ちます。
        
        > !注*Authenticated*有効なSitecore認証クッキーを持つユーザーは、この設定に関わらず独自のセキュリティコンテキストを受け取ります。この設定は匿名リクエストにのみ適用されます。
        
        > !警告sitecore\\adminや他の特権ユーザーをなりすましとして使わないでください。これにより深刻なセキュリティ侵害が起こります。なりすましにはextranet\\anonymousまたはアプリ固有の専用ユーザーのみを使用してください。
        
6.  APIキーの項目を保存します。Sitecore 9.1+でその項目を公開します。
    
7.  Sitecoreヘッドレスサービスモジュールが動作しているかは、[RESTレイアウトサービスの](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/layout-service.html "Layout Service") エンドポイントで確認してください <cm\_server>/sitecore/api/layout/render?item=/&sc\_apikey=<api\_item\_id>。
    
    > !注api\_item\_idを提供しない場合、サーバーはエラー HTTP 400 - Bad Requestを返します。
    > 
    > マルチサイトソリューション用にURLパラメータsc\_siteを追加し、編集モードのレイアウトデータを無効にするsc\_mode=normal
    
    リクエストが正しく解決された場合、応答は次のようなJSONデータを返します:
    
    {
     "context": {
     ...
     },
     "route": {
     "name": "Home",
     ...
     }
    }
    
8.  **アイテムID**をコピーしてください。JSSアプリをSitecoreに接続する際には、このIDを必ず提供してください。