Condividi tramite


Integrare Azure Cosmos DB for NoSQL con Connettore di servizi

Questa pagina mostra i client e i metodi di autenticazione supportati, e mostra un codice di esempio che è possibile usare per connettere Azure Cosmos DB for NoSQL ad altri servizi cloud tramite Connettore di servizi. È comunque possibile connettersi ad Azure Cosmos DB for NoSQL con altri linguaggi di programmazione senza usare Connettore di servizi. Questa pagina mostra anche i nomi e i valori predefiniti delle variabili di ambiente (o configurazione spring boot) che si ottengono quando si crea la connessione al servizio.

Servizi di calcolo supportati

Connettore di servizi può essere usato per connettere i servizi di calcolo seguenti ad Azure Cosmos DB for NoSQL:

  • Servizio app di Azure
  • App contenitore di Azure
  • Funzioni di Azure
  • Servizio Azure Kubernetes (AKS)
  • Azure Spring Apps

Tipi di autenticazione e di client supportati

La tabella seguente illustra le combinazioni di tipi client e metodi di autenticazione supportati per la connessione del servizio di calcolo a Azure Cosmos DB for NoSQL tramite Connettore di servizi. Un valore "Sì" indica che la combinazione è supportata, mentre "No" indica che non è supportata.

Tipo client Identità gestita assegnata dal sistema Identità gestita assegnata dall'utente Stringa di segreto/connessione Entità servizio
.NET
Java
Java - Spring Boot
Node.js
Python
Go
Nessuno

Questa tabella indica che tutte le combinazioni di tipi client e metodi di autenticazione nella tabella sono supportate. Tutti i tipi di client possono usare uno dei metodi di autenticazione per connettersi ad Azure Cosmos DB for NoSQL tramite Connettore di servizi.

Nomi di variabili di ambiente predefiniti o proprietà dell'applicazione e codice di esempio

Usare i dettagli di connessione seguenti per connettere i servizi di calcolo ad Azure Cosmos DB for NoSQL. Per ogni esempio seguente, sostituire i testi segnaposto <database-server>, <database-name>, <account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, <tenant-id> e <access-key> con le proprie informazioni. Per altre informazioni sulle convenzioni di denominazione, vedere l'articolo Elementi interni di Service Connector.

Identità gestita assegnata dal sistema

Tipo di client SpringBoot

L'uso di un'identità gestita assegnata dal sistema come tipo di autenticazione è disponibile solo per Spring Cloud Azure versione 4.0 o successive.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.cosmos.credential.managed-identity-enabled Se abilitare l'identità gestita true
spring.cloud.azure.cosmos.database Database https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Endpoint risorsa https://<database-server>.documents.azure.com:443/

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_COSMOS_LISTCONNECTIONSTRINGURL L'URL per ottenere la stringa di connessione 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 L'ambito dell'identità gestita https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT L'endpoint della risorsa https://<database-server>.documents.azure.com:443/

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Azure Cosmos DB for NoSQL usando un'identità assegnata dal sistema.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando il pacchetto NuGet Azure.Identity e ottenere l'URL dell'endpoint dalla variabile di ambiente aggiunta da Connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // 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à gestita assegnata dall'utente

Tipo di client SpringBoot

L'uso di un'identità gestita assegnata dall'utente come tipo di autenticazione è disponibile solo per Spring Cloud Azure versione 4.0 o successive.

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.cosmos.credential.managed-identity-enabled Se abilitare l'identità gestita true
spring.cloud.azure.cosmos.database Database https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Endpoint risorsa https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id L’ID client <client-ID>

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_COSMOS_LISTCONNECTIONSTRINGURL L'URL per ottenere la stringa di connessione 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 L'ambito dell'identità gestita https://management.azure.com/.default
AZURE_COSMOS_CLIENTID L’ID client <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT L'endpoint della risorsa https://<database-server>.documents.azure.com:443/

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Azure Cosmos DB for NoSQL usando un'identità assegnata dall'utente.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando il pacchetto NuGet Azure.Identity e ottenere l'URL dell'endpoint dalla variabile di ambiente aggiunta da Connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // 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
    );
    

Stringa di connessione

Avviso

Microsoft consiglia di usare il flusso di autenticazione più sicuro disponibile. Il flusso di autenticazione descritto in questa procedura richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non sono presenti in altri flussi. Si consiglia di usare questo flusso solo quando altri flussi più sicuri, come le identità gestite, non sono validi.

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
azure.cosmos.key Chiave di accesso del database per le versioni di Spring Cloud Azure precedenti alla 4.0 <access-key>
azure.cosmos.database Database per le versioni di Spring Cloud Azure precedenti alla 4.0 <database-name>
azure.cosmos.uri URI del database per le versioni di Spring Cloud Azure precedenti alla 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Chiave di accesso del database per le versioni di Spring Cloud Azure successive alla 4.0 <access-key>
spring.cloud.azure.cosmos.database Database per le versioni di Spring Cloud Azure successive alla 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint URI del database per le versioni di Spring Cloud Azure successive alla 4.0 https://<database-server>.documents.azure.com:443/

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_COSMOS_CONNECTIONSTRING Stringa di connessione di Azure Cosmos DB for NoSQL AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Azure Cosmos DB for NoSQL usando una stringa di connessione.

  1. Installare la dipendenza.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Ottenere la stringa di connessione dalla variabile di ambiente aggiunta da Service Connector.

    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")!
    );
    

Entità servizio

Tipo di client SpringBoot

Nome variabile di ambiente predefinito Descrizione Valore di esempio
spring.cloud.azure.cosmos.credential.client-id L’ID client <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Segreto client <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id ID del tenant. <tenant-ID>
spring.cloud.azure.cosmos.database Database <database-name>
spring.cloud.azure.cosmos.endpoint Endpoint risorsa https://<database-server>.documents.azure.com:443/

Altri tipi di client

Nome variabile di ambiente predefinito Descrizione Valore di esempio
AZURE_COSMOS_LISTCONNECTIONSTRINGURL L'URL per ottenere la stringa di connessione 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 L'ambito dell'identità gestita https://management.azure.com/.default
AZURE_COSMOS_CLIENTID ID segreto client <client-ID>
AZURE_COSMOS_CLIENTSECRET Segreto client <client-secret>
AZURE_COSMOS_TENANTID ID del tenant. <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT L'endpoint della risorsa https://<database-server>.documents.azure.com:443/

Codice di esempio

Vedere i passaggi e il codice seguenti per connettersi ad Azure Cosmos DB for NoSQL usando un'entità servizio.

  1. Installare le dipendenze.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Eseguire l'autenticazione usando il pacchetto NuGet Azure.Identity e ottenere l'URL dell'endpoint dalla variabile di ambiente aggiunta da Connettore di servizi. Quando si usa il codice seguente, rimuovere il commento dalla parte del frammento di codice per il tipo di autenticazione che si vuole usare.

    using Microsoft.Azure.Cosmos;
    using Azure.Core;
    using Azure.Identity;
    using System; 
    
    // Uncomment the following lines corresponding to the authentication type you want to use.
    // 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
    );
    

Passaggi successivi

Per altre informazioni sul connettore di servizi seguire le esercitazioni riportate di seguito.