Configure Sitecore 9.0 for xDB on Azure

Last updated Friday, June 8, 2018 in Sitecore Experience Platform for
Keywords: Cloud, xDB, xDB Cloud

You can configure an on-premise Sitecore 9.0 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 CollectionSearch
  • XConnect Reference Data
  • Marketing Automation Operations
  • Marketing Automation Reporting

You can use xDB in combination with an on-premise Sitecore XM installation (that is, in CMS only mode), 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.

This topic describes how to:

Prepare to configure Sitecore 9.0 for xDB on Azure

Before you configure Sitecore 9.0 for xDB Cloud, you must:

  • Deploy the XM Sitecore on-premise setup (that is, Content Management and Content Delivery) according to the Sitecore Experience Platform installation guide.
  • Create and install a Client Authentication Certificate (Follow the steps in the Sitecore Experience Platform installation guide, Production Environment Setup, Setting up Client Certificates).
  • 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:

  1. In the Control panel, Administrative tools, Certificate Manager, open the certificate.
  2. Right-click the certificate file, then click: All Tasks, Manage private keys, and then click Add.
  3. In the pop-up dialog, in the From this location field, select your local computer.
  4. Enter the type object names in the following format:
    • If you are running Sitecore as App Pool:

      IIS AppPool\<Instance name>

    • If you are running Sitecore as a Network Service: provide read access to Network Service
  5. On the Security tab, select your group or user name and select the Allow check box for read-access.

Permissions_SitecoreAzureToolkit_20_Cloud_screenshot

Configure on-premise Sitecore roles

To configure the on-premise Sitecore roles, you must set up the connection strings and patch config 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.

For the XM Content Management role:

  1. Append xDB connections to the ConnectionStrings.config file, for example:
    <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 " />
  2. 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 the serviceUrl 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.

For the XM Content Delivery role:

  • Append the xDB connections to ConnectionStrings.config file, for example:
    <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 Content Management role to the Reporting Web App. This is known as a Certificate Thumbprint value. You must use the same value for xDB deployment and the Content Management connection string.

Turn off CMS-only mode

To turn off CMS-only mode for both the Content Management and Content Delivery roles:

  1. Open the \App_Config\Sitecore\Marketing.xDB\Sitecore.Xdb.config file, set the Xdb.Enabled and Xdb.Tracking.Enabled settings to "true". For example:
          <setting name="Xdb.Enabled" value="true" />
          <setting name="Xdb.Tracking.Enabled" value="true" />

Send feedback about the documentation to docsite@sitecore.net.