ODataアイテムサービス用のAPIキー
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
各リクエストで有効な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キーの使用
リクエストでは、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)を投げます。