Compartir vía


Integración de Azure Cosmos DB for NoSQL con Service Connector

En esta página se muestran los métodos de autenticación admitidos y los clientes, y se muestra el código de ejemplo que puede usar para conectar Azure Cosmos DB for NoSQL a otros servicios en la nube mediante Service Connector. Es posible que todavía pueda conectarse a Azure Cosmos DB for NoSQL en otros lenguajes de programación sin usar Service Connector. Esta página también muestra los nombres y valores predeterminados de las variables de entorno o la configuración de Spring Boot que se obtiene al crear la conexión de servicio.

Servicios de proceso admitidos

Service Connector se puede usar para conectar los siguientes servicios de proceso a Azure Cosmos DB for NoSQL:

  • Azure App Service
  • Azure Container Apps
  • Funciones de Azure
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Tipos de autenticación y tipos de cliente admitidos

En la tabla siguiente se muestran las combinaciones de tipos de cliente y métodos de autenticación que se admiten para conectar el servicio de proceso a Azure Cosmos DB for NoSQL mediante Service Connector. Un valor "Sí" indica que se admite la combinación, mientras que "No" indica que no se admite.

Tipo de cliente Identidad administrada asignada por el sistema Identidad administrada asignada por el usuario Secreto/cadena de conexión Entidad de servicio
.NET
Java
Java: Spring Boot
Node.js
Python
Go
None

Esta tabla indica que todas las combinaciones de tipos de cliente y métodos de autenticación de la tabla son compatibles. Todos los tipos de cliente pueden usar cualquiera de los métodos de autenticación para conectarse a Azure Cosmos DB for NoSQL mediante Service Connector.

Nombres de variables de entorno predeterminados o propiedades de aplicación y código de ejemplo

Use los detalles de conexión siguientes para conectar los servicios de proceso a Azure Cosmos DB for NoSQL. Para cada ejemplo siguiente, sustituya los textos del marcador de posición <database-server>, <database-name>, <account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, <tenant-id> y <access-key> por su propia información. Para más información sobre las convenciones de nomenclatura, consulte el artículo sobre los elementos internos del conector de servicio.

Identidad administrada asignada por el sistema

Tipo de cliente de SpringBoot

El uso de una identidad administrada asignada por el sistema como tipo de autenticación solo está disponible para Spring Cloud Azure versión 4.0 o superior.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.cosmos.credential.managed-identity-enabled Si se va a habilitar la identidad administrada true
spring.cloud.azure.cosmos.database Su base de datos https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Punto de conexión del recurso https://<database-server>.documents.azure.com:443/

Otros tipos de clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Dirección URL para obtener la cadena de conexión 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 Ámbito de la identidad administrada https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Punto de conexión del recurso https://<database-server>.documents.azure.com:443/

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Cosmos DB for NoSQL mediante una identidad asignada por el sistema.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentíquese usando el paquete NuGet Azure.Identity y obtenga la URL del punto de conexión de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea 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
    );
    

Identidad administrada asignada por el usuario

Tipo de cliente de SpringBoot

El uso de una identidad administrada asignada por el usuario como tipo de autenticación solo está disponible para Spring Cloud Azure versión 4.0 o posterior.

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.cosmos.credential.managed-identity-enabled Si se va a habilitar la identidad administrada true
spring.cloud.azure.cosmos.database Su base de datos https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Punto de conexión del recurso https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Id. de cliente <client-ID>

Otros tipos de clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Dirección URL para obtener la cadena de conexión 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 Ámbito de la identidad administrada https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Id. de cliente <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Punto de conexión del recurso https://<database-server>.documents.azure.com:443/

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Cosmos DB for NoSQL utilizando una identidad asignada por el usuario.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentíquese usando el paquete NuGet Azure.Identity y obtenga la URL del punto de conexión de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea 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
    );
    

Cadena de conexión

Advertencia

Microsoft recomienda usar el flujo de autenticación más seguro disponible. El flujo de autenticación que se describe en este procedimiento requiere un alto grado de confianza en la aplicación y conlleva riesgos que no están presentes en otros flujos. Solo debe usar este flujo cuando otros flujos más seguros, como las identidades administradas, no sean viables.

Tipo de cliente de SpringBoot

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
azure.cosmos.key La clave de acceso de la base de datos para Spring Cloud Azure, versión inferior a la 4.0 <access-key>
azure.cosmos.database Su base de datos para Spring Cloud Azure versión inferior a 4.0 <database-name>
azure.cosmos.uri Su URI de base de datos para Spring Cloud Azure versión inferior a 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key La clave de acceso de la base de datos para Spring Cloud Azure versión superior a la 4.0 <access-key>
spring.cloud.azure.cosmos.database Su base de datos para Spring Cloud Azure versión superior a 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint Su URI de base de datos para Spring Cloud Azure versión superior a 4.0 https://<database-server>.documents.azure.com:443/

Otros tipos de clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_COSMOS_CONNECTIONSTRING Cadena de conexión de Azure Cosmos DB for NoSQL AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Cosmos DB for NoSQL mediante una cadena de conexión.

  1. Instalación de la dependencia

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Obtenga la cadena de conexión de la variable de entorno agregada por el conector de servicio.

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

Entidad de servicio

Tipo de cliente de SpringBoot

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
spring.cloud.azure.cosmos.credential.client-id Id. de cliente <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Secreto de cliente <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id El identificador de inquilino <tenant-ID>
spring.cloud.azure.cosmos.database Su base de datos <database-name>
spring.cloud.azure.cosmos.endpoint Punto de conexión del recurso https://<database-server>.documents.azure.com:443/

Otros tipos de clientes

Nombre de la variable de entorno predeterminado Descripción Valor de ejemplo
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Dirección URL para obtener la cadena de conexión 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 Ámbito de la identidad administrada https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Identificador del secreto de cliente <client-ID>
AZURE_COSMOS_CLIENTSECRET Secreto de cliente <client-secret>
AZURE_COSMOS_TENANTID El identificador de inquilino <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Punto de conexión del recurso https://<database-server>.documents.azure.com:443/

Código de ejemplo

Consulte los pasos y el código siguientes para conectarse a Azure Cosmos DB for NoSQL mediante una entidad de servicio.

  1. Instale las dependencias.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Autentíquese usando el paquete NuGet Azure.Identity y obtenga la URL del punto de conexión de la variable de entorno agregada por Service Connector. Al usar el código siguiente, quite la marca de comentario de la parte del fragmento de código para el tipo de autenticación que desea 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
    );
    

Pasos siguientes

Para más información sobre Service Connector, siga los tutoriales que se enumeran a continuación.