> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sync.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure Cosmos DB

You can use the Azure Cosmos DB connector from the CData Sync application to capture data
from Azure Cosmos DB and move it to any supported destination. To do so, you need to add
the connector, authenticate to the connector, and complete your connection.

## Add the Azure Cosmos DB Connector

To enable Sync to use data from Azure Cosmos DB, you first must add the
connector, as follows:

<ol>
  <li>Open the **Connections** page of the Sync dashboard.</li>
  <li>Click **Add Connection** to open the **Select Connectors** page.</li>
  <li>Click the **Sources** tab and locate
  the **Azure Cosmos DB** row.</li>

  <li>
    Click the **Configure Connection** icon at the end of that row to open
    the **New Connection** page. This action opens the
    **Add Connection** dialog.

    **Note:** If the **Configure Connection** icon is not
    available, click the **Download Connector** icon to install
    the Azure Cosmos DB connector.
  </li>

  <li>Enter a name for your connection in the **Add Connection** dialog.</li>
  <li>Click **Add** to open the **Settings** tab for your connector.</li>
</ol>

For more information about installing new connectors, see
[Connections](https://docs.sync.cdata.com/26.4/en/connections/connections.md).

## Verify the Role Assignment for Your Azure Identity

Before you connect to Azure Cosmos DB, you need to ensure that your Azure identity is assigned the correct role. The identity is the account that you use to log in to the browser (during Azure Active Directory authentication) or into the application (for Azure Service Principal authentication).

You can create custom role definitions:

* CosmosDB Built-in Data Reader
* CosmosDB Built-in Data Contributor

In addition, you can create custom role definintions.

You must also set the scope of the role assignment, where "/" specifies that the identity can access all the databases.

For more details about assigning roles, see [Configure role-based access control with Microsoft Entra ID for your Cosmos DB account](https://learn.microsoft.com/en-us/azure/cosmos-db/how-to-setup-rbac).

## Authenticate to Azure Cosmos DB

After you add the connector, you need to set the required properties.

**Account Endpoint:** Enter the Cosmos DB account URL. This URL is available the **Keys** blade (**Settings > Keys**) of your Cosmos DB account.

CData Sync supports authenticating to Azure Cosmos DB in several ways. Select your authentication method below to proceed to the relevant section that contains the authentication details.

* [**AccountKey**](#account-key) (default)
* [**AzureAD**](#azure-active-directory)
* [**AzureServicePrincipal**](#azure-service-principal)
* [**AzureServicePrincipalCert**](#azure-service-principal-certificate)

### Account Key

To connect with account-key credentials, specify the following properties:

* **Auth Scheme:** Select **AccountKey**.
* (Default) **Account Key:** Enter the master key token or resource token that is required to connect to the Azure Cosmos DB REST API.
* **Token Type:** Select the type of token (**master** or **resource**) that you are using in the **Account Key** field. The default token type is **master**.

### Azure Active Directory

To connect with an Azure Active Directory (AD) user account, select **AzureAD**
for **Auth Scheme**. CData Sync provides an embedded OAuth application with
which to connect, so no additional properties are required.

### Azure Service Principal

To connect with an Azure service principal and client secret, set the following properties:

<ul><li>**Auth Scheme:** Select **AzureServicePrincipal**.</li>
<li>**Azure Tenant:** Enter the Microsoft Online tenant to which you want to connect.</li>
<li>**OAuth Client Id:** Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.</li>
<li>**OAuth Client Secret:** Enter the client secret that you were assigned when you registered your application with an OAuth authorization server.</li></ul>

To obtain the OAuth client Id and client secret for your application:

<ol><li>Log in to the [Azure portal](https://portal.azure.com).</li>
<li>In the left navigation pane, select **All services**. Then, search for and select **App registrations**.</li>
<li>Click **New registrations**.</li>
<li>Enter an application name and select **Any Azure AD Directory - Multi Tenant**.</li>
<li>After you create the application, copy the application (client) Id value that is displayed in the **Overview** section. Use this value as the OAuth client Id.</li>
<li>Navigate to the **Certificates & Secrets** section and select **New Client Secret** for the application.</li>
<li>Specify the duration and save the client secret. After you save it, the key value is displayed.</li>
<li>Copy this value because it is displayed only once. You will use this value as the OAuth client secret.</li>
<li>On the **Authentication** tab, make sure to select **Access tokens (used for implicit flows)**.</li></ol>

### Azure Service Principal Certificate

To connect with an Azure service principal and client certificate, set the following properties:

<ul><li>**Auth Scheme:** Select **AzureServicePrincipalCert**.</li>
<li>**Azure Tenant:** Enter the Microsoft Online tenant to which you want to connect.</li>
<li>**OAuth Client Id:** Enter the client Id that you were assigned when you registered your application with an OAuth authorization server.</li>
<li>**OAuth JWT Cert:** Enter your Java web tokens (JWT) certificate store.</li>
<li>**OAuth JWT Cert Type:** Enter the type of key store that contains your JWT Certificate. The default type is **PEMKEY\_BLOB**.</li>
<li>(Optional) **OAuth JWT Cert Password:** Enter the password for your OAuth JWT certificate.</li>
<li>(Optional) **OAuth JWT Cert Subject:** Enter the subject of your OAuth JWT certificate.</li></ul>

To obtain the OAuth certificate for your application:

<ol><li>Log in to the [Azure portal](https://portal.azure.com).</li>
<li>In the left navigation pane, select **All services**. Then, search for and select **App registrations**.</li>
<li>Click **New registrations**.</li>
<li>Enter an application name and select **Any Azure AD Directory - Multi Tenant**.</li>
<li>After you create the application, copy the application (client) Id value that is displayed in the **Overview** section. Use this value as the OAuth client Id.</li>
<li>Navigate to the **Certificates & Secrets** section and select **Upload certificate**. Then, select the certificate to upload from your local machine.</li>
<li>Specify the duration and save the client secret. After you save it, the key value is displayed.</li>
<li>Copy this value because it is displayed only once. You will use this value as the OAuth client secret.</li>
<li>On the **Authentication** tab, make sure to select **Access tokens (used for implicit flows)**.</li></ol>

## Complete Your Connection

To complete your connection:

1. For the **Schema** property (optional), enter the schema (the Azure Cosmos DB database) with which you want to work.
2. Define advanced connection settings on the **Advanced** tab. (In most cases, though, you should not need these settings.)
3. If you authenticate with AzureAD, click **Connect to Azure Cosmos DB** to connect to your Azure Cosmos DB account.
4. Click **Create & Test** to create your connection.

## More Information

For more information about interactions between CData Sync and Azure Cosmos DB, see
[Azure Cosmos DB Connector for CData Sync](https://cdn.cdata.com/help/EHN/synch/default.htm).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.