---
title: "認可およびAPIアクセス"
slug: "authorization-and-api-access"
abstract: "プレビュー GraphQL API、デリバリー GraphQL API、トークンREST API、管理者の各認証方法およびアクセスオプションの概要REST API。"
---
# 認可およびAPIアクセス

このトピックでは、Experience Edge APIのさまざまな認証およびアクセスオプションについて説明します。

## GraphQL APIへのリクエストを認可する

プレビュー GraphQL APIとデリバリー GraphQL APIにアクセスする方法は3つあります。

-   *GraphQL IDE* - GraphQL IDE(GraphQL Playground)は、開発中のクエリ探索やテストに推奨されるツールです。これを使うことでレスポンス構造を理解し、フロントエンドコードを効率的にデバッグできます。SitecoreAI Deployで直接生成されたAPIトークンを使って、IDE内でリクエストを承認します。手順の説明については、「 [GraphQL IDEの設定](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/set-up-the-graphql-ides.html "Set up the GraphQL IDEs")」をご覧ください。
    
-   *Front-end app* - フロントエンドアプリでは、プレビュー GraphQL APIとデリバリー GraphQL APIの両方に同じエンドポイントを使用し、リクエストの承認にはAPIトークンではなく [コンテキストID](https://doc.sitecore.com/sai/ja/developers/sitecoreai/deploying-sitecoreai/deploy-app/manage-an-environment/context-id-environment-variables.html)を使うことを推奨します。プレビュー GraphQL APIにはプレビューコンテキストID、配信GraphQL APIにはライブコンテキストIDを使います。
    
    現代の開発でこのアプローチを推奨する主な理由は二つあります。第一に、*直接APIアクセス* 方式よりもセットアップと保守が簡単であること。次に、この方法に従い、コンテキストIDを切り替えてプレビュー GraphQL APIとデリバリー GraphQL APIを切り替えます。エンドポイントやリクエストの他の部分を変更する必要はありません。
    
    > !重要コンテキストIDをブラウザに公開[するのは避けましょう](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-best-practices.html#avoid-exposing-your-context-id-to-the-browser) 。
    
-   *直接APIアクセス* - フロントエンド開発に推奨されるアプローチの代替として、ネイティブAPIエンドポイントや認可メソッドを使って直接APIリクエストを行うことができます。この場合、リクエストはGraphQL IDEで使われているのと同じAPIトークンを使って承認します。
    

### プレビュー GraphQL API

プレビュー [GraphQL API](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/preview-graphql-api.html "Preview GraphQL API")にアクセスする3つの方法のURLと認証要件の概要をご紹介します。環境ホスト名、APIトークン、コンテキストIDはSitecoreAI Deployでアクセス可能です。

::::タブズ:::tab{title="GraphQL IDE"}プレビュー GraphQL APIのIDEにアクセスしてください。

https://<YOUR\_ENVIRONMENT\_HOST\_NAME>/sitecore/api/graph/edge/ide/

リクエストを認可するには、すべてのAPIリクエストのヘッダーにプレビューAPIトークンを含めてください:

{ "sc\_apikey": "<PREVIEW\_API\_TOKEN>" }

::::::tab{title="Front-end app"}

フロントエンドアプリからプレビュー GraphQL APIへのリクエスト方法を示す例のcURLコールです:

curl -X POST 'https://edge-platform.sitecorecloud.io/v1/content/api/graphql/v1' \\
--header 'x-sitecore-contextid: <PREVIEW\_CONTEXT\_ID>' \\
--header 'Content-Type: application/json' \\
--data-raw '{<GRAPHQL\_QUERY>}'

以下の点に注目してください。

-   フロントエンドアプリでは、プレビュー GraphQLとデリバリー GraphQL APIの両方に同じエンドポイントを使ってリクエストを行ってください。
    
    https://edge-platform.sitecorecloud.io/v1/content/api/graphql/v1
    
-   リクエストを承認するには、すべてのAPIリクエストのヘッダーにプレビューコンテキストIDを含めてください:
    
    x-sitecore-contextid: <PREVIEW\_CONTEXT\_ID>
    

::::::tab{title="Direct API access"}

プレビュー GraphQL APIに直接アクセスするための例のcURL呼び出し例は以下の通りです:

curl -X POST 'https://<YOUR\_ENVIRONMENT\_HOST\_NAME>/sitecore/api/graph/edge' \\
--header 'sc\_apikey: <PREVIEW\_API\_TOKEN>' \\
--header 'Content-Type: application/json' \\
--header 'Cookie: shell#lang=en' \\
--data-raw '{<GRAPHQL\_QUERY>}'

以下の点に注目してください。

-   プレビューに直接アクセスするための基本URL GraphQL API:
    
    https://<YOUR\_ENVIRONMENT\_HOST\_NAME>/sitecore/api/graph/edge
    
-   プレビュー GraphQL APIをクエリするためのエンドポイント:
    
    POST https://<YOUR\_ENVIRONMENT\_HOST\_NAME>/sitecore/api/graph/edge
    
-   リクエストを認可するには、すべてのAPIリクエストのヘッダーにプレビューAPIトークンを含めてください:
    
    { "sc\_apikey": "<PREVIEW\_API\_TOKEN>" }
    

:::::::

### 配達GraphQL API

以下は [、Delivery GraphQL API](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/delivery-graphql-api.html "Delivery GraphQL API")にアクセスする3つの方法のURLと承認要件の概要です。APIトークンとコンテキストIDはSitecoreAI Deployでアクセス可能です。

::::タブ:::tab{title="GraphQL IDE"}

以下のURLから配達GraphQL APIのIDEにアクセスしてください:

https://edge.sitecorecloud.io/api/graphql/ide

リクエストを認可するには、すべてのAPIリクエストのヘッダーにDelivery APIトークンを含めてください:

{ "sc\_apikey": "<DELIVERY\_API\_TOKEN>" }

::::::tab{title="Front-end app"}

フロントエンドアプリからDelivery GraphQL APIへのリクエストを行う例のcURLコールを紹介します:

curl -X POST 'https://edge-platform.sitecorecloud.io/v1/content/api/graphql/v1' \\
--header 'x-sitecore-contextid: <LIVE\_CONTEXT\_ID>' \\
--header 'Content-Type: application/json' \\
--data-raw '{<GRAPHQL\_QUERY>}'

以下の点に注目してください。

-   フロントエンドアプリでは、プレビュー GraphQLとデリバリー GraphQL APIの両方に同じエンドポイントを使ってリクエストを行ってください。
    
    https://edge-platform.sitecorecloud.io/v1/content/api/graphql/v1
    
-   リクエストを認可するには、すべてのAPIリクエストのヘッダーにDelivery Context IDを含めることができます:
    
    x-sitecore-contextid: <LIVE\_CONTEXT\_ID>
    

::::::tab{title="Direct API access"}

以下は、Delivery GraphQL APIに直接アクセスするための例のcURLコールです:

curl -X POST 'https://edge.sitecorecloud.io/api/graphql/v1' \\
--header 'sc\_apikey: <DELIVERY\_API\_TOKEN>' \\
--header 'Content-Type: application/json' \\
--header 'Cookie: shell#lang=en' \\
--data-raw '{<GRAPHQL\_QUERY>}'

以下の点に注目してください。

-   デリバリー GraphQL API直接アクセスするための基本URLは以下の通りです:
    
    https://edge.sitecorecloud.io/api/graphql
    
-   Delivery GraphQL APIを問い合わせるエンドポイントは /v1です:
    
    POST https://edge.sitecorecloud.io/api/graphql/v1
    
-   リクエストを認可するには、すべてのAPIリクエストのヘッダーにDelivery APIトークンを含めてください:
    
    { "sc\_apikey": "<DELIVERY\_API\_TOKEN>" }
    

:::::::

## 管理者REST APIとトークンへのリクエストを承認するREST API

管理者[REST API](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/admin-rest-api.html "Admin REST API")にアクセスするためのcURLコールの例を以下に示します:

curl -X GET 'https://edge.sitecorecloud.io/api/admin/v1/<ENDPOINT>' \\
--header 'Authorization: Bearer <JSON\_WEB\_TOKEN>'

以下は [トークンREST API](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/token-rest-api.html "Token REST API")にアクセスするためのcURLコールの例です:

curl -X GET 'https://edge.sitecorecloud.io/api/apikey/v1' \\
--header 'Authorization: Bearer <JSON\_WEB\_TOKEN>'

以下の点に注目してください。

-   管理者の基本URL REST API:
    
    https://edge.sitecorecloud.io/api/admin/v1
    
-   トークンの基本URLはREST API:
    
    https://edge.sitecorecloud.io/api/apikey/v1
    
-   管理者REST APIとトークンREST APIの両方がJSONウェブトークン(JWT)を用いたベアラー認証を使用します。APIリクエストを承認するには:
    
    1.  [SitecoreAI Deployで環境用のエッジ管理クライアントを作成します。これによりクライアントIDとクライアントシークレットが生成されます。](https://doc.sitecore.com/sai/ja/developers/sitecoreai/deploying-sitecoreai/deploy-app/managing-sitecoreai-client-credentials/manage-client-credentials-for-a-sitecoreai-organization-or-environment.html)
        
    2.  [クライアントIDとクライアントシークレットを使ってJSONウェブトークンを作成します。これによりJWTが生成されます。JSONウェブトークンは24時間で期限切れになります。期限切れ後は新しいものを申請してください。](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/authorization-and-api-access/create-a-json-web-token-for-experience-edge-apis.html "Create a JSON web token for Experience Edge APIs")
        
    3.  JWTはすべてのAPIリクエストのヘッダーに含めてください:
        
        Authorization: Bearer <JSON\_WEB\_TOKEN>
        

## プログラム的にDelivery GraphQL APIトークンを作成します

Delivery GraphQL APIへのリクエストを承認する推奨方法は、フロントエンドアプリ内のコンテキストIDやGraphQL IDEのAPIトークンを使用することです。APIトークンを取得する最も簡単な方法は、環境 **の詳細タブにある**SitecoreAI Deployでトークンを生成することです。

あるいは、Deploy REST APIまたはToken REST APIを使って [プログラム的にDelivery GraphQL APIトークンを作成する](https://doc.sitecore.com/sai/ja/developers/sitecoreai/experience-edge/experience-edge-apis/authorization-and-api-access/generate-a-delivery-graphql-api-token.html)こともできます。これらの方法はプレビュー GraphQL APIでは利用できません。

プログラムで生成したAPIトークンは、SitecoreAI Deployで作成するものと同じ方法で使用できます。