---
title: "ODataアイテムサービス用のAPIキー"
slug: "api-keys-for-the-odata-item-service"
abstract: "APIキーはODataアイテムサービスリクエストの認証に使います"
---
# ODataアイテムサービス用のAPIキー

各リクエストで有効なAPIキーをODataアイテムサービスに渡さなければなりません。渡さなければ、リクエストは失敗します。

APIキーは、masterデータベースで作成したアイテムのIDです。ロングIDとショートIDの両方が有効な形APIキーです。例えば:

12239A2A-D323-4236-8CA7-0D01C1A17AC6

12239A2AD32342368CA70D01C1A17AC6

*master\\sitecore\\system\\Settings\\Services\\API Keys*フォルダ内に*sitecore\\templates\\System\\Services\\API Key*テンプレートを使ってAPIキーアイテムを作成します。作成したアイテムは必ず公開しなければなりません。

*API Key*テンプレートには3つのフィールドがあります:

フィールド

概要

許可されたコントローラー

APIキーの使用が許可されているコントローラーのリストです。すべてのコントローラーを許可するには「\*」ワイルドカード文字を使用できます。  
  
例えば: CustomService.Controllers.ApiKeyAttributeController

CORSの起源

許可された起源のセミコロン区切りリスト。  
  
例: http://sdn1.samplesite.com; http://cdn2.samplesite.com;http://anothersite.com  
  
\> \[!注\]  
\> SitecoreがAzure Webアプリで動作している場合、CORSオリジンはSitecoreまたはAzureのいずれかで独占的に管理できます。CORS管理には両方を使うことはできません。なぜなら、Azure設定が常にアプリケーション(Sitecore)からの構成を上書きしてしまうからです。SitecoreからCORSを管理するには、AzureポータルからすべてのCORS構成を削除してください。その後、CORSのOriginsフィールドを使ってCORSドメインを追加します。AzureポータルからCORSを管理するには、必要なドメインをすべてCORS設定に追加してください。

なりすましユーザー

匿名のユーザーはこのユーザーになりすます。  
  
例: sitecore\\User。  
  
**APIキー**でImpersonation Userを指定していない場合、Sitecore.Services.AnonymousUser設定で指定された値が使われます。

項目にさらに多くのフィールドを追加できます。このデータは*CustomData*プロパティでキー-値の辞書オブジェクトとして利用可能です。

> !注*OData Item API Key*テンプレートはODATAアイテムサービス用の*API Key*テンプレートの拡張版です。ODataアイテムAPIキーのテンプレートは*API Key*テンプレートから継承されており、ODataアイテムサービスで使用される2つのフィールド(データベースとSearchフィルターフィールド)を導入します。これらのフィールドの値は*CustomData*プロパティでキー-値辞書オブジェクトとして利用可能です。このテンプレートはmasterデータベースに存在します: *sitecore\\templates\\System\\Services\\OData Item API Key*。

このトピックでは以下の内容を説明します:

-   [APIキーの使用](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/api-keys-for-the-odata-item-service.html#UUID-21798c31-c6ac-16ea-8710-35c4ce8be8a9_id__Use_Using_an "Using an API key")
-   [RequiredAPIKey クラス属性](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/api-keys-for-the-odata-item-service.html#UUID-21798c31-c6ac-16ea-8710-35c4ce8be8a9_N1525856760948)

## APIキーの使用

リクエストでは、APIキー項目の(長または短)IDをクエリパラメータまたはヘッダーで渡します。

### クエリパラメータにAPIキーを渡す

APIキー項目の長いIDを使う:

/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?sc\_apikey=26192A5F-9530-4D8D-AB0A-0A608F99B060

APIキー項目のショートIDを用いる:

/sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')?sc\_apikey=26192A5F95304D8DAB0A0A608F99B060

### ヘッダーにAPIキーを渡す

APIキー項目の長いIDを使う:

-   URL: /sitecore/api/ssc/aggregate/content/Items('{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}')
-   Header\_key: sc\_apikey
-   Header\_value: 26192A5F-9530-4D8D-AB0A-0A608F99B060

## RequiredApiKey クラス属性

コントローラーのRequiredApiKey属性を使い、APIキーがリクエストURLやヘッダーのいずれかで利用可能であることを確認できます。

Sitecore.Services.ClientがAPIキーを検証した後、APIキー項目の*AllowedControllers*プロパティにこの特定のコントローラが記載されているかもチェックします。もし言及されていなければ失敗し、不良リクエストエラー(HTTPステータスコード400)を投げます。