ODataアイテムサービス用のAPIキー

Version:
日本語翻訳に関する免責事項

このページの翻訳は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)を投げます。

この記事を改善するための提案がある場合は、 お知らせください!