---
title: "API認証と認可"
slug: "api-authentication-and-authorization"
abstract: "Sitecore Search REST API使用時の認証方法についての情報"
---
# API認証と認可

> !重要サブドメインがある場合、認証や認可は不要で、このセクションは無視しても構いません。サブドメインホストURLにAPI回の呼び出しを行えます。これはSitecore Searchの**Developer Resources**セクションで取得できます。サブドメインホストを使うことで、認証と承認は十分です。

サブドメインがない場合は、APIにアクセスする前に自分自身で認証・認証Sitecore Searchなければなりません。認証時には、Sitecore Searchに自分が有効なユーザーであることを伝えます。認証する際には、Sitecore Searchに通話したいAPIにアクセスするための十分な権利があることを伝えます。認証と認可が一体となることで、あなたと顧客が安全で安心できる体験が保証されます。

Sitecore Search 2つの認証方法をサポートしています:

-   **APIキー** - 安全なサーバー間統合に使用されます。
-   **アクセストークン** - ブラウザベースのアプリケーション、Sitecore Search SDK実装やカスタムJavaScriptフロントエンドに推奨されます。

どちらの方法も、**API Access Developer Resources**で生成するAPIキー >に依存しています。

Sitecore Search API認証および認可プロセスは以下の通りです:

1.  必要なスコープを持つAPIキーを入手してください。通常は一度だけで済みます。
2.  必要に応じて、アクセストークンとリフレッシュトークンを生成してください。トークンが期限切れになるたびにこれを行わなければなりません。
3.  APIを呼び出す際はリクエストヘッダーでAPIキーまたはアクセストークンを渡Sitecore Search。これはすべてのリクエストに対して必ず行わなければなりません。

> !注[Ingestion API](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-rest-apis/using-the-ingestion-api-to-add-content-to-an-index.html "Using the Ingestion API to add content to an index")はAPIキーのみを受け入れます。アクセストークンは受け付けません。

以下のセクションでは、APIキー、アクセストークン、リフレッシュトークンについて詳しく説明します。

## APIキー

Sitecore Search API鍵は一意で安全な52文字の秘密コードです。API鍵は期限切れになりません。

こちらがサンプルAPIキーです: 01-90c83624-12f708fa77a1e96a25c4a2afd0f28a4c23ff5252

自分でAPIキーを生成することはできません。Sitecore Searchが代わりに生成します。APIキーを見るには、**Developer Resources** > **API Access**をクリックしてください。

[APIキーを使ってオプションでアクセストークンを生成](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-rest-apis/api-authentication-and-authorization/get-an-access-token-and-a-refresh-token.html#UUID-a2ee49a9-c340-e53d-4189-5dbdbd647dcd_section-idm4556622641787233042237668003 "Use an API key to get an access token")することもできます。その後、[リクエストヘッダーにAPIキーまたはアクセストークンを追加します](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-rest-apis/api-authentication-and-authorization/add-an-api-key-or-access-token-to-a-request-header.html "Add an API key or access token to a request header")。

> !重要アプリケーションがブラウザ上で動作する場合、クライアントサイドコードでAPIキーを公開しないでください。ユーザーはネットワークリクエストを検査し、アプリケーションから送信されたAPIキーを閲覧できます。

### APIキースコープ

すべてのAPIキーにはスコープが割り当てられています。このスコープが、どのREST APIにアクセスでき、どのAPIがアクセスできないかを決定します。呼び出したいAPIに応じて、アカウントマネージャーがAPIキーに必要なスコープを割り当てることができます。

APIキーは、以下のいずれか、一部、またはすべてのスコープを持つことができます。

-   discover - この範囲はSearchおよびRecommendation APIの使用を許可します。
-   event - このスコープはEvents APIの呼び出しを許可します。
-   ingestion - このスコープは、インジェスションAPIを呼び出す権限を与える。

使用するAPIキーは呼び出すAPIと一致しなければなりません。そうでなければエラーが発生します。例えば、discoverスコープしか持たないAPIキーでイベントAPIを呼び出すと、HTTP 4XXエラーが発生します。

## アクセストークンとリフレッシュトークン

アクセストークンはAPIリクエストを認証するために使える一時的なコードです。リフレッシュトークンは新しいアクセストークンを取得するための一時的なコードです。

> !注アクセストークンは、APIキーを公開することが安全でないブラウザベースやその他の非安全クライアントに推奨されます。

まず、APIキーを使ってサーバーからSitecore Search認証エンドポイントへ通話を行います。応答時にアクセストークンとリフレッシュトークンが届きます。

-   アクセストークンが切れたら、リフレッシュトークンを使って新しいアクセストークンを取得します。
-   リフレッシュトークンが期限切れになったら、APIキーを使って新しいアクセストークンを取得します。

アクセストークンとリフレッシュトークンの有効期限には制限があります。デフォルトはアクセストークンは1日、リフレッシュトークンは1週間です。有効期間はデフォルトより短く設定できますが、それ以上はできません

[アクセストークンやリフレッシュトークンを生成](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-rest-apis/api-authentication-and-authorization/get-an-access-token-and-a-refresh-token.html "Get an access token and a refresh token")でき、[リクエストヘッダーにアクセストークンを追加](https://doc.sitecore.com/search/ja/developers/search-developer-guide/integrating-using-rest-apis/api-authentication-and-authorization/add-an-api-key-or-access-token-to-a-request-header.html#UUID-9cf5b709-ae57-cf76-77b4-9c6c907c472b_section-idm4575354268944033094336395063 "Add an access token to a request header")することも可能です。

### アクセストークンスコープ

アクセストークンとリフレッシュトークンはAPIキーからスコープを継承します。例えば、discoverスコープを持つAPIキーを使ってアクセストークンを生成したと仮定します。このAPIキーから生成したアクセストークンはSearchと推奨APIを呼び出せますが、イベントAPIは呼び出せません。