Partilhar via


Integrar o Azure Cosmos DB para NoSQL com o Service Connector

Esta página mostra os métodos de autenticação e os clientes suportados e mostra o código de exemplo que pode utilizar para ligar o Azure Cosmos DB para NoSQL a outros serviços na nuvem utilizando o Service Connector. Talvez você ainda consiga se conectar ao Azure Cosmos DB para NoSQL em outras linguagens de programação sem usar o Service Connector. Esta página também mostra nomes e valores de variáveis de ambiente padrão (ou configuração do Spring Boot) que você obtém quando cria a conexão de serviço.

Serviços de computação suportados

O Service Connector pode ser usado para conectar os seguintes serviços de computação ao Azure Cosmos DB para NoSQL:

  • Serviço de Aplicações do Azure
  • Azure Container Apps
  • Funções do Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de autenticação e tipos de cliente suportados

A tabela abaixo mostra quais combinações de tipos de cliente e métodos de autenticação têm suporte para conectar seu serviço de computação ao Azure Cosmos DB para NoSQL usando o Service Connector. Um "Sim" indica que a combinação é suportada, enquanto um "Não" indica que ela não é suportada.

Tipo de cliente Identidade gerida atribuída pelo sistema Identidade gerida atribuída pelo utilizador Segredo / cadeia de conexão Service principal (Principal de serviço)
.NET Sim Sim Sim Sim
Java Sim Sim Sim Sim
Java - Arranque primavera Sim Sim Sim Sim
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Sim
Go Sim Sim Sim Sim
Nenhuma Sim Sim Sim Sim

Esta tabela indica que todas as combinações de tipos de cliente e métodos de autenticação na tabela são suportadas. Todos os tipos de cliente podem usar qualquer um dos métodos de autenticação para se conectar ao Azure Cosmos DB para NoSQL usando o Service Connector.

Nomes de variáveis de ambiente padrão ou propriedades de aplicativo e código de exemplo

Use os detalhes de conexão abaixo para conectar seus serviços de computação ao Azure Cosmos DB para NoSQL. Para cada exemplo abaixo, substitua os textos <database-server>de espaço reservado , <database-name>,<account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, e <tenant-id><access-key> com suas próprias informações. Para obter mais informações sobre convenções de nomenclatura, consulte o artigo interno do Service Connector.

Identidade gerida atribuída pelo sistema

Tipo de cliente SpringBoot

O uso de uma identidade gerenciada atribuída ao sistema como o tipo de autenticação só está disponível para o Spring Cloud Azure versão 4.0 ou superior.

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.cosmos.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada true
spring.cloud.azure.cosmos.database A sua base de dados https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/

Outros tipos de clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL A URL para obter a cadeia de conexão 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 Seu escopo de identidade gerenciado https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma identidade atribuída pelo sistema.

  1. Instale dependências.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentique-se usando Azure.Identity o pacote NuGet e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

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

Identidade gerida atribuída pelo utilizador

Tipo de cliente SpringBoot

O uso de uma identidade gerenciada atribuída pelo usuário como o tipo de autenticação só está disponível para o Spring Cloud Azure versão 4.0 ou superior.

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.cosmos.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada true
spring.cloud.azure.cosmos.database A sua base de dados https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id O seu ID de cliente <client-ID>

Outros tipos de clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL A URL para obter a cadeia de conexão 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 Seu escopo de identidade gerenciado https://management.azure.com/.default
AZURE_COSMOS_CLIENTID O seu ID de cliente <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma identidade atribuída pelo usuário.

  1. Instale dependências.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentique-se usando Azure.Identity o pacote NuGet e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

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

Connection string

Aviso

A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Description Valor de exemplo
azure.cosmos.key A chave de acesso para seu banco de dados para a versão do Spring Cloud Azure abaixo da 4.0 <access-key>
azure.cosmos.database Seu banco de dados para a versão do Spring Cloud Azure abaixo da 4.0 <database-name>
azure.cosmos.uri O URI do banco de dados para a versão do Spring Cloud Azure abaixo da 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key A chave de acesso para seu banco de dados para o Spring Cloud Azure versão mais 4.0 <access-key>
spring.cloud.azure.cosmos.database Seu banco de dados para o Spring Cloud Azure versão mais de 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint O URI do seu banco de dados para o Spring Cloud Azure versão mais 4.0 https://<database-server>.documents.azure.com:443/

Outros tipos de clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_COSMOS_CONNECTIONSTRING Cadeia de conexão do Azure Cosmos DB para NoSQL AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma cadeia de conexão.

  1. Instalar dependência.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Obtenha a cadeia de conexão da variável de ambiente adicionada pelo 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")!
    );
    

Service principal (Principal de serviço)

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Description Valor de exemplo
spring.cloud.azure.cosmos.credential.client-id O seu ID de cliente <client-ID>
spring.cloud.azure.cosmos.credential.client-secret O segredo do seu cliente <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id O seu ID de inquilino <tenant-ID>
spring.cloud.azure.cosmos.database A sua base de dados <database-name>
spring.cloud.azure.cosmos.endpoint Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/

Outros tipos de clientes

Nome da variável de ambiente padrão Description Valor de exemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL A URL para obter a cadeia de conexão 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 Seu escopo de identidade gerenciado https://management.azure.com/.default
AZURE_COSMOS_CLIENTID O ID secreto do seu cliente <client-ID>
AZURE_COSMOS_CLIENTSECRET O segredo do seu cliente <client-secret>
AZURE_COSMOS_TENANTID O seu ID de inquilino <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Seu ponto de extremidade de recurso https://<database-server>.documents.azure.com:443/

Código de exemplo

Consulte as etapas e o código abaixo para se conectar ao Azure Cosmos DB para NoSQL usando uma entidade de serviço.

  1. Instale dependências.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentique-se usando Azure.Identity o pacote NuGet e obtenha a URL do ponto de extremidade da variável de ambiente adicionada pelo Service Connector. Ao usar o código abaixo, descomente a parte do trecho de código para o tipo de autenticação que você deseja usar.

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

Próximos passos

Siga os tutoriais listados abaixo para saber mais sobre o Service Connector.