Partager via


Intégrer Azure Cosmos DB for NoSQL à l’aide de Service Connector

Cette page présente les méthodes d’authentification et les clients pris en charge, et présente des exemples de code que vous pouvez utiliser pour connecter Azure Cosmos DB pour NoSQL à d’autres services cloud à l’aide de Service Connecter or. Vous pouvez toujours vous connecter à Azure Cosmos DB pour NoSQL dans d’autres langages de programmation sans utiliser service Connecter or. Cette page présente également les noms et les valeurs des variables d’environnement par défaut (ou configuration Spring Boot) que vous obtenez lorsque vous créez des connexions de service.

Service de calcul pris en charge

Le Connecter or de service peut être utilisé pour connecter les services de calcul suivants à Azure Cosmos DB pour NoSQL :

  • Azure App Service
  • Azure Functions
  • Azure Container Apps
  • Azure Spring Apps

Types d’authentification et de clients pris en charge

Le tableau ci-dessous montre quelles combinaisons de types de clients et de méthodes d’authentification sont prises en charge pour connecter votre service de calcul à Azure Cosmos DB pour NoSQL à l’aide du service Connecter or. Un « Oui » indique que la combinaison est prise en charge, tandis qu’une valeur « Non » indique qu’elle n’est pas prise en charge.

Type de client Identité managée affectée par le système Identité managée affectée par l’utilisateur Secret / chaîne de connexion Principal du service
.NET Oui Oui Oui Oui
Java Oui Oui Oui Oui
Java - Spring Boot Oui Oui Oui Oui
Node.js Oui Oui Oui Oui
Python Oui Oui Oui Oui
Go Oui Oui Oui Oui
Aucun Oui Oui Oui Oui

Ce tableau indique que toutes les combinaisons de types clients et de méthodes d’authentification dans la table sont prises en charge. Tous les types de clients peuvent utiliser l’une des méthodes d’authentification pour se connecter à Azure Cosmos DB pour NoSQL à l’aide de Service Connecter or.

Noms de variables d’environnement par défaut ou propriétés d’application et exemple de code

Utilisez les détails de connexion ci-dessous pour connecter vos services de calcul à Azure Cosmos DB for NoSQL. Pour chaque exemple ci-dessous, remplacez le texte d’espace réservé <database-server>, <database-name>, <account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>,<tenant-id> et <access-key> par vos propres informations. Pour plus d’informations sur les conventions d’affectation de noms, case activée l’article interne du service Connecter or.

Identité managée affectée par le système

Type de client SpringBoot

L’utilisation d’une identité managée affectée par le système comme type d’authentification est disponible uniquement pour Spring Cloud Azure version 4.0 ou ultérieure.

Nom de variable d’environnement par défaut Description Exemple de valeur
spring.cloud.azure.cosmos.credential.managed-identity-enabled Indique s’il faut activer l’identité managée true
spring.cloud.azure.cosmos.database Votre base de données https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/

Autres types de clients

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL permettant d’accéder à la chaîne de connexion https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Étendue de votre identité managée https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Azure Cosmos DB pour NoSQL à l’aide d’une identité affectée par le système.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifiez-vous à l’aide Azure.Identity du package NuGet et obtenez l’URL du point de terminaison à partir de la variable d’environnement ajoutée par service Connecter or. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

Identité managée affectée par l’utilisateur

Type de client SpringBoot

L’utilisation d’une identité managée affectée par l’utilisateur comme type d’authentification est disponible uniquement pour Spring Cloud Azure version 4.0 ou ultérieure.

Nom de variable d’environnement par défaut Description Exemple de valeur
spring.cloud.azure.cosmos.credential.managed-identity-enabled Indique s’il faut activer l’identité managée true
spring.cloud.azure.cosmos.database Votre base de données https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Votre ID client <client-ID>

Autres types de clients

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL permettant d’accéder à la chaîne de connexion https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Étendue de votre identité managée https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Votre ID client <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Azure Cosmos DB pour NoSQL à l’aide d’une identité affectée par l’utilisateur.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifiez-vous à l’aide Azure.Identity du package NuGet et obtenez l’URL du point de terminaison à partir de la variable d’environnement ajoutée par service Connecter or. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

Chaîne de connexion

Type de client SpringBoot

Nom de variable d’environnement par défaut Description Exemple de valeur
azure.cosmos.key Clé d’accès pour votre base de données pour Spring Cloud Azure version inférieure à 4.0 <access-key>
azure.cosmos.database Votre base de données pour Spring Cloud Azure version inférieure à 4.0 <database-name>
azure.cosmos.uri URI de votre base de données pour Spring Cloud Azure version inférieure à 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Clé d’accès pour votre base de données pour Spring Cloud Azure version supérieure à 4.0 <access-key>
spring.cloud.azure.cosmos.database Votre base de données pour Spring Cloud Azure version supérieure à 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint URI de votre base de données pour Spring Cloud Azure version supérieure à 4.0 https://<database-server>.documents.azure.com:443/

Autres types de clients

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_COSMOS_CONNECTIONSTRING Chaîne de connexion d’Azure Cosmos DB for NoSQL AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Azure Cosmos DB pour NoSQL à l’aide d’un chaîne de connexion.

  1. Installez la dépendance.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Obtenez le chaîne de connexion à partir de la variable d’environnement ajoutée par service Connecter or.

    using Microsoft.Azure.Cosmos;
    using System; 
    
    // Create a new instance of CosmosClient using a connection string
    using CosmosClient client = new(
        connectionString: Environment.GetEnvironmentVariable("AZURE_COSMOS_CONNECTIONSTRING")!
    );
    

Principal du service

Type de client SpringBoot

Nom de variable d’environnement par défaut Description Exemple de valeur
spring.cloud.azure.cosmos.credential.client-id Votre ID client <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Votre clé secrète client <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id Votre ID d’abonné <tenant-ID>
spring.cloud.azure.cosmos.database Votre base de données <database-name>
spring.cloud.azure.cosmos.endpoint Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/

Autres types de clients

Nom de variable d’environnement par défaut Description Exemple de valeur
AZURE_COSMOS_LISTCONNECTIONSTRINGURL URL permettant d’accéder à la chaîne de connexion https://management.azure.com/subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.DocumentDB/databaseAccounts/<database-server>/listConnectionStrings?api-version=2021-04-15
AZURE_COSMOS_SCOPE Étendue de votre identité managée https://management.azure.com/.default
AZURE_COSMOS_CLIENTID ID de votre clé secrète client <client-ID>
AZURE_COSMOS_CLIENTSECRET Votre clé secrète client <client-secret>
AZURE_COSMOS_TENANTID Votre ID d’abonné <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Votre point de terminaison de ressource https://<database-server>.documents.azure.com:443/

Exemple de code

Reportez-vous aux étapes et au code ci-dessous pour vous connecter à Azure Cosmos DB pour NoSQL à l’aide d’un principal de service.

  1. Installez des dépendances.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifiez-vous à l’aide Azure.Identity du package NuGet et obtenez l’URL du point de terminaison à partir de la variable d’environnement ajoutée par service Connecter or. Lorsque vous utilisez le code ci-dessous, supprimez les marques de commentaire de la partie de l’extrait de code pour le type d’authentification que vous souhaitez utiliser.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines according to the authentication type.
    // For system-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential();
    
    // For user-assigned identity.
    // TokenCredential credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID");
    //     }
    // );
    
    // For service principal.
    // TokenCredential credential = new ClientSecretCredential(
    //     tenantId: Environment.GetEnvironmentVariable("AZURE_COSMOS_TENANTID")!,
    //     clientId: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTID")!,
    //     clientSecret: Environment.GetEnvironmentVariable("AZURE_COSMOS_CLIENTSECRET")!,
    //     options: new TokenCredentialOptions()
    // );
    
    // Create a new instance of CosmosClient using the credential above
    using CosmosClient client = new(
        accountEndpoint: Environment.GetEnvironmentVariable("AZURE_COSMOS_RESOURCEENDPOINT")!,
        tokenCredential: credential
    );
    

Étapes suivantes

Suivez les tutoriels ci-dessous pour en savoir plus sur Service Connector.