スケーリングされた環境でのAPI認証キーの構成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
適用対象 |
xDB処理とコンテンツ管理。 |
Sitecoreインストールフレームワーク |
セキュリティキーはデフォルトでは設定 されていません 。 |
Azure ツールキット |
セキュリティ キーは、ARMテンプレートに入力されるときに既定で構成されます。 |
スケーリングされたSitecore環境でサーバー間の安全な通信を確保するには、クライアントからの各要求をxDB Processingサーバーで認証する必要があります。たとえば、リモート処理サーバーと通信する必要があるコンテンツ管理サーバーなどです。スケーリングされた環境では、認証されたパーティのみがリモート サーバー上のデータにアクセスできます。
サーバー要求ごとに、Sitecore.Analytics.Commons.ApiKeyHttpTransportFactoryクラスは要求されたページにカスタムHTTPヘッダーを追加します。ヘッダーには、ConnectionStrings.configファイルに格納されているAPI認証キーが含まれています。
各サーバーで、認証プロセス中に使用できるAPI認証キーを入力する必要があります。要求を正常に認証するには、キーが同一である必要があります。たとえば、処理サーバー上のキーは、データを正常に取得するためにコンテンツ管理サーバーに保存されているキーと一致する必要があります。

サーバー認証プロセスは次のとおりです。
-
Content Managementクライアントは、Sitecore.Analytics.Commons.ApiKeyHttpTransportFactoryクラスを使用して処理サーバーにデータを要求します。
-
処理サーバーが要求を受信すると、ApiKeyReportDataProviderクラスは、HTTPヘッダーのAPI認証キーが処理サーバーに格納されているものと一致することを確認します(大文字と小文字が区別されます)。
-
2つのキーが一致すると、要求の処理を続行し、データが取得され、Content Managementクライアントに送り返すことができます。
-
認証キーが一致しない場合、サーバーは403 (禁止) ステータス コードで応答します。
ウェブサイト全体でHTTPSを使用します。 Sitecore.Xdb.Remote.Client.configファイルでは、RequireHttpsはデフォルトで有効になっており、すべての実稼働環境で有効にしたままにしておく必要があります。HTTPは運用サーバーに対して十分な安全性がないため、ローカルのテスト インスタンスまたは開発インスタンスでのみ使用する必要があります。
オプション #1: 共有API認証キーを構成する
次のセクションでは、Content ManagementサーバーとProcessingサーバー間でAPI認証キーを設定する方法について説明します。このシナリオでは、処理とコンテンツ管理は同じ認証キーを使用します。
Content Managementサーバ上
Content ManagementサーバーでAPI認証キーを設定するには:
-
Content Managementサーバーで、Website\App_Configフォルダに移動し、ConnectionString.configファイルを開きます。
-
ConnectionStrings.configファイルで、reporting.apikey接続文字列を検索し、キーとして使用するASCII文字列を入力します (デフォルトの最小長は32文字)。キーは、数字またはテキストの任意の組み合わせにすることができます。
例えば:
RequestResponse<add name="reporting.apikey" connectionString="67588d50667e47e0a02cb919185f7c30"/>
大事な選択する文字列は、Sitecore.Xdb.Remote.Client.configファイルのMinimalApiKeyLength属性で指定されているAPIキーの最小長に準拠している必要があります。
処理サーバー上
ProcessingサーバーでAPI認証キーを設定するには:
-
処理サーバーで、Website\App_Configフォルダーに移動し、ConnectionStrings.configファイルを開きます。
-
reporting.apikey接続文字列をConnectionStrings.configファイルに追加します。キーはContent Managementサーバーと一致する必要があります。
オプション #2: 処理用に別のAPI認証キーを構成する
次のセクションでは、Content ManagementとProcessingの間で異なるAPI認証キーを設定する方法について説明します。
Content Managementサーバ上
Content Managementサーバー、または処理サーバーからデータを要求する他のサーバー:
-
Sitecore.Xdb.Remote.Client.configファイルで、次のセクションを探し、connectionStringNameパラメーターを新しい値 (例: processing.apikey) に設定します。
RequestResponse<processing> <remote enabled="true"> <reportingStorageManagerProxy type="Sitecore.Analytics.Aggregation.History.Remoting.ReportingStorageManagerProxy, Sitecore.Analytics.Aggregation"> <param desc="serviceLocation">/~/v81/processing/reportingstoragemanager/</param> <param desc="webTransportFactory" ref="processing/remote/httpTransportFactory" /> </reportingStorageManagerProxy> <httpTransportFactory type="Sitecore.Analytics.Core.ApiKeyHttpTransportFactory, Sitecore.Analytics.Core" singleInstance="true"> <param desc="serviceUrl"></param> <param desc="requireHttps" type="System.Boolean" factoryMethod="Parse" arg0="true" /> <param desc="connectionStringName">processing.apikey</param> <!-- The same header name must be defined in Sitecore.Xdb.Remote.Server.config for reporting.--> <param desc="headerName">X-Processing-Api-Key</param> <param desc="minimalApiKeyLength">32</param> </httpTransportFactory> </remote> </processing>
-
API認証キーをConnectionStrings.configファイルに追加します。
例えば:
RequestResponse<add name="processing.apikey" connectionString="90588d50667e47e0a02cb919185f7c30"/>
大事なAPI認証キーの値が互いに異なることを確認します。
処理サーバー上
ProcessingサーバーでAPI認証キーを設定するには:
-
Sitecore.Xdb.Remote.Client.configファイルで、次のセクションを見つけ、次に示すようにconnectionStringNameパラメーターを更新します。
RequestResponse<processing role:require="Processing"> <authenticationChecker singleInstance="true" type="Sitecore.Xdb.Reporting.HttpHeaderAuthenticationChecker, Sitecore.Xdb.Reporting"> <!-- The same header name must be defined in Sitecore.Xdb.Remote.Client.config for CM instance.--> <param desc="headerName">X-Processing-Api-Key</param> <param desc="connectionStringName">processing.apikey</param> <param desc="logger" resolve="true" type="Sitecore.Abstractions.BaseLog, Sitecore.Kernel" /> </authenticationChecker> </processing>
-
新しいAPI認証キーをConnectionStrings.configファイルに追加します。
RequestResponse<add name="processing.apikey" connectionString="90588d50667e47e0a02cb919185f7c30"/>
-
ConnectionStrings.configファイルが存在する場合は、reporting.apikeyファイルから削除します。
オプションの設定
オプションのコンテンツ管理サーバー構成
次の表は、必要に応じて後で調整できるSitecore.Xdb.Remote.Client.configファイルの既定のパラメーター設定を示しています。処理には、さまざまなパラメータ設定を構成できます。
Sitecore on Azureを実行している場合、設定はApp_Config/Sitecore/Azure/Sitecore.Xdb.Remote.Client.CM.configファイルにあります。
パラメーター |
形容 |
---|---|
サービスURL |
すべての要求で使用するサービスホストのURL。処理サーバーのホスト名が変更された場合は、これを更新してください。 |
コネクションストリング名 |
API認証キーを含む接続文字列の名前。 |
ヘッダー名 |
要求に含めるヘッダーの名前。両方のサーバーで同じヘッダー名を使用します。たとえば、「 X-Processing-Api-Key 」のように入力します。 |
MinimalApiKeyLength |
これにより、API認証キーのキーの最小長が指定されます。短すぎると、リクエストは送信されません。キーが長いほど安全です。 |
RequireHttps (英語) |
ブール型スイッチはデフォルトで「true」に設定されています。本番環境では、常にHTTPSを使用してください。これが "true" に設定されていて、<paramref name="serviceHostUrl"/> のスキーマがHTTPSでない場合、例外がスローされます。 |
これらの構成パラメーターは、Sitecore.Xdb.Remote.Client.configファイルの次のセクションに表示されます。
<processing>
<remote enabled="true">
<reportingStorageManagerProxy type="Sitecore.Analytics.Aggregation.History.Remoting.ReportingStorageManagerProxy, Sitecore.Analytics.Aggregation">
<param desc="serviceLocation">/~/v81/processing/reportingstoragemanager/</param>
<param desc="webTransportFactory" ref="processing/remote/httpTransportFactory" />
</reportingStorageManagerProxy>
<httpTransportFactory type="Sitecore.Analytics.Core.ApiKeyHttpTransportFactory, Sitecore.Analytics.Core" singleInstance="true">
<param desc="serviceUrl"></param>
<param desc="requireHttps" type="System.Boolean" factoryMethod="Parse" arg0="true" />
<param desc="connectionStringName">reporting.apikey</param>
<!-- The same header name must be defined in Sitecore.Xdb.Remote.Server.config for reporting.-->
<param desc="headerName">X-Processing-Api-Key</param>
<param desc="minimalApiKeyLength">32</param>
</httpTransportFactory>
</remote>
</processing>
オプションの処理サーバー構成
パラメーター |
形容 |
---|---|
コネクションストリング名 |
正しいAPI認証キーを含む接続文字列の名前 (これは、要求を行うサーバーのキーと一致する必要があります)。 |
ヘッダー名 |
受信サーバー要求をチェックインするヘッダーの名前。 |
<processing role:require="Processing">
<authenticationChecker singleInstance="true" type="Sitecore.Xdb.Reporting.HttpHeaderAuthenticationChecker, Sitecore.Xdb.Reporting">
<!-- The same header name must be defined in Sitecore.Xdb.Remote.Client.config for CM instance.-->
<param desc="headerName">X-Processing-Api-Key</param>
<param desc="connectionStringName">processing.apikey</param>
<param desc="logger" resolve="true" type="Sitecore.Abstractions.BaseLog, Sitecore.Kernel" />
</authenticationChecker>
</processing>