Configure Sitecore for xDB on Azure
Configure an new on-premise Sitecore environment to use with an xDB Cloud deployment.
You can configure an on-premise Sitecore environment for use with a self-managed Experience Database (xDB) Azure deployment; that is, an Azure-based, self-supported xDB server. According to the Sitecore xDB topology, you can deploy the following roles to the Cloud:
Processing
Reporting
XConnect Collection
XConnect Collection Search
XConnect Reference Data
Marketing Automation Operations
Marketing Automation Reporting
You can use xDB in combination with on-premise Sitecore XM installation guide to provide the Experience Database features in the Cloud. Refer to the Sitecore Experience Platform installation guide and the Sitecore Azure deployment guide for the correct connection strings between environments, and to prepare the correct client certificate configuration.
Before you configure Sitecore for xDB Cloud, you must:
Deploy the Content Management (CM), and Content Delivery (CD) roles according to the Sitecore Experience Platform installation guide.
Important
For Sitecore 9.0 and earlier, you can use the XM Scaled packages.
Create and install a Client Authentication Certificate by following the steps in the Sitecore Experience Platform installation guide, Production Environment Setup, Setting up Client Certificates, (SIF does this automatically).
Decide on a topology that suits you best, choose either the xDB Single or xDB scaled topology for Azure.
To ensure your Sitecore instance(s) have access to the Client Authentication Certificate:
In the Control panel, Administrative tools, Certificate Manager, open the certificate.
Right-click the certificate file, then click: All Tasks, Manage private keys, and then click Add.
In the pop-up dialog, in the From this location field, select your local computer.
Enter the type object names in the following format:
If you are running Sitecore as an App Pool:
IIS AppPool\<Instance name>
If you are running Sitecore as a Network Service: provide read access to
Network Service
On the Security tab, select your group or user name and select the Allow check box for read-access.
To configure the on-premise Sitecore roles, you must set up the connection strings and patch configuration files.
Note
Do not make changes directly to the configuration files. Instead, you must create a patch file that performs the required changes during run time.
The XM Content Management role
Append xDB connections to the
ConnectionStrings.config
file.<add name="xconnect.collection" connectionString="https://XConnectCollectionURL"/> <add name="xconnect.collection.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint" /> <add name="xdb.referencedata" connectionString="<XdbRefDataDBConnectionString>"/> <add name="xdb.referencedata.client" connectionString="https://XConnectRefDataUrl" /> <add name="xdb.referencedata.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" /> <add name="reporting.apikey" connectionString="XdbReportingAPIKey" /> <add name="reporting" connectionString="<XdbReportingDBConnectionString>" /> <add name="xdb.marketingautomation.reporting.client" connectionString="https://XConnectAutomationReporting"/> <add name="xdb.marketingautomation.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" /> <add name="xdb.marketingautomation.operations.client" connectionString="https://XConnectAutomationOperations" /> <add name="xdb.marketingautomation.operations.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint " /> <add name="sitecore.reporting.client" connectionString="https://CortexReporting"/> <add name="sitecore.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" />
To set up a connection to the Processing and Reporting servers, open the
\App_Config\Sitecore\Marketing.xDB\Sitecore.Xdb.Remote.Client.config
file, and set theserviceUrl
parameter for the Reporting and Processing nodes to point to the URLs of the Reporting and Processing services that are deployed as a part of xDB respectively.
The XM Content Delivery role
Append the xDB connections to the ConnectionStrings.config
file.
<add name="xconnect.collection" connectionString="https://XConnectCollection" /> <add name="xconnect.collection.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint" /> <add name="xdb.referencedata.client" connectionString="https://XConnectRefDataUrl" /> <add name="xdb.referencedata.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" /> <add name="xdb.marketingautomation.reporting.client" connectionString="https://XConnectAutomationReporting"/> <add name="xdb.marketingautomation.reporting.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue= CertificateThumbprint" /> <add name="xdb.marketingautomation.operations.client" connectionString="https://XConnectAutomationOperations" /> <add name="xdb.marketingautomation.operations.client.certificate" connectionString="StoreName=My;StoreLocation=LocalMachine;FindType=FindByThumbprint; FindValue=CertificateThumbprint " />
Note
The Reporting API Key has a unique value, for example, a GUID, that is used for authentication when communicating from the CM role to the Reporting Web App. This is called a Certificate Thumbprint value. You must use the same value for xDB deployment and the CM connection string.
To turn off CMS-only mode for both the CM and CD roles:
Open the
\App_Config\Sitecore\Marketing.xDB\Sitecore.Xdb.config
file, set theXdb.Enabled
andXdb.Tracking.Enabled
settings totrue
. For example:<setting name="Xdb.Enabled" value="true" /> <setting name="Xdb.Tracking.Enabled" value="true" />