Freigeben über


Integrieren von Azure Cosmos DB for NoSQL mit Service Connector

Auf dieser Seite werden unterstützte Authentifizierungsmethoden und Clients sowie Beispielcode gezeigt, den Sie verwenden können, um Azure Cosmos DB for NoSQL mit anderen Clouddiensten mithilfe von Service Connector zu verbinden. Möglicherweise können Sie auch in anderen Programmiersprachen eine Verbindung mit Azure Cosmos DB for NoSQLSQL herstellen, ohne Service Connector zu verwenden. Auf dieser Seite werden auch die Namen und Werte der Standardumgebungsvariablen (oder die Spring Boot-Konfiguration) angezeigt, die Sie erhalten, wenn Sie die Dienstverbindung erstellen.

Unterstützte Computedienste

Mit Service Connector können Sie die folgenden Computedienste mit Azure Cosmos DB for NoSQL verbinden:

  • Azure App Service
  • Azure Container Apps
  • Azure-Funktionen
  • Azure Kubernetes Service (AKS)
  • Azure Spring Apps

Unterstützte Authentifizierungstypen und Clienttypen

Die folgende Tabelle zeigt, welche Kombinationen von Clienttypen und Authentifizierungsmethoden für die Verbindung Ihres Computediensts mit Azure Cosmos DB for NoSQL mithilfe von Service Connector unterstützt werden. Ein „Ja“ gibt an, dass die Kombination unterstützt wird, während ein „Nein“ angibt, dass sie nicht unterstützt wird.

Clienttyp Systemseitig zugewiesene verwaltete Identität Benutzerseitig zugewiesene verwaltete Identität Geheimnis/Verbindungszeichenfolge Dienstprinzipal
.NET Ja Ja Ja Ja
Java Ja Ja Ja Ja
Java - Spring Boot Ja Ja Ja Ja
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Go Ja Ja Ja Ja
Keine Ja Ja Ja Ja

In der Tabelle wird angegeben, dass alle Kombinationen von Clienttypen und Authentifizierungsmethoden in der Tabelle unterstützt werden. Alle Clienttypen können jede der Authentifizierungsmethoden verwenden, um mithilfe von Service Connector eine Verbindung mit Azure Cosmos DB for NoSQL herzustellen.

Namen der Standardumgebungsvariablen oder Anwendungseigenschaften und Beispielcode

Verwenden Sie die nachstehenden Verbindungsdetails, um Ihre Computedienste mit Azure Cosmos DB for NoSQL zu verbinden. Ersetzen Sie den Platzhaltertext <database-server>, <database-name>, <account-key>, <resource-group-name>, <subscription-ID>, <client-ID>, <SQL-server>, <client-secret>, <tenant-id> und <access-key> in allen Beispielen unten durch Ihre eigenen Informationen. Weitere Informationen zu Benennungskonventionen finden Sie im Artikel Besonderheiten des Dienstconnectors.

Systemseitig zugewiesene verwaltete Identität

SpringBoot-Clienttyp

Die Verwendung einer systemseitig zugewiesenen verwalteten Identität als Authentifizierungstyp ist nur für Spring Cloud Azure Version 4.0 oder höher verfügbar.

Standardname der Umgebungsvariablen Beschreibung Beispielswert
spring.cloud.azure.cosmos.credential.managed-identity-enabled Gibt an, ob die verwalteten Identität aktiviert werden soll true
spring.cloud.azure.cosmos.database Ihre Datenbank https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Die URL zum Abrufen der Verbindungszeichenfolge 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 Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/

Beispielcode

Nutzen Sie die folgenden Schritte und den folgenden Code, um eine Verbindung mit Azure Cosmos DB for NoSQL mithilfe einer systemseitig zugewiesenen verwalteten Identität herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifizieren Sie sich mithilfe des NuGet-Pakets Azure.Identity, und rufen Sie die Endpunkt-URL aus der von Service Connector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

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

Benutzerseitig zugewiesene verwaltete Identität

SpringBoot-Clienttyp

Die Verwendung einer benutzerseitig zugewiesenen verwalteten Identität als Authentifizierungstyp ist nur für Spring Cloud Azure Version 4.0 oder höher verfügbar.

Standardname der Umgebungsvariablen Beschreibung Beispielswert
spring.cloud.azure.cosmos.credential.managed-identity-enabled Gibt an, ob die verwalteten Identität aktiviert werden soll true
spring.cloud.azure.cosmos.database Ihre Datenbank https://management.azure.com/.default
spring.cloud.azure.cosmos.endpoint Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.credential.client-id Ihre Client-ID <client-ID>

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Die URL zum Abrufen der Verbindungszeichenfolge 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 Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Ihre Client-ID <client-ID>
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/

Beispielcode

Nutzen Sie die folgenden Schritte und den folgenden Code, um eine Verbindung mit Azure Cosmos DB for NoSQL mithilfe einer benutzerseitig zugewiesenen verwalteten Identität herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifizieren Sie sich mithilfe des NuGet-Pakets Azure.Identity, und rufen Sie die Endpunkt-URL aus der von Service Connector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    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

Warnung

Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsflow erfordert ein sehr hohes Maß an Vertrauen in die Anwendung und birgt Risiken, die bei anderen Flows nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielswert
azure.cosmos.key Der Zugriffsschlüssel für Ihre Datenbank für Spring Cloud Azure Version unter 4.0 <access-key>
azure.cosmos.database Ihre Datenbank für Spring Cloud Azure Version unter 4.0 <database-name>
azure.cosmos.uri Ihr Datenbank-URI für Spring Cloud Azure Version unter 4.0 https://<database-server>.documents.azure.com:443/
spring.cloud.azure.cosmos.key Der Zugriffsschlüssel für Ihre Datenbank für Spring Cloud Azure Version über 4.0 <access-key>
spring.cloud.azure.cosmos.database Ihre Datenbank für Spring Cloud Azure Version über 4.0 <database-name>
spring.cloud.azure.cosmos.endpoint Ihr Datenbank-URI für Spring Cloud Azure Version über 4.0 https://<database-server>.documents.azure.com:443/

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_CONNECTIONSTRING Azure Cosmos DB for NoSQL-Verbindungszeichenfolge AccountEndpoint=https://<database-server>.documents.azure.com:443/;AccountKey=<account-key>

Beispielcode

Nutzen Sie die folgenden Schritte und den folgenden Code, um eine Verbindung mit Azure Cosmos DB for NoSQL mithilfe einer Verbindungszeichenfolge herzustellen.

  1. Installieren Sie die Abhängigkeit.

    dotnet add package Microsoft.Azure.Cosmos
    
  2. Rufen Sie die Verbindungszeichenfolge aus der Umgebungsvariablen ab, die vom Dienstconnector hinzugefügt wurde.

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

Dienstprinzipal

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielswert
spring.cloud.azure.cosmos.credential.client-id Ihre Client-ID <client-ID>
spring.cloud.azure.cosmos.credential.client-secret Ihr geheimer Clientschlüssel <client-secret>
spring.cloud.azure.cosmos.profile.tenant-id Ihre Mandanten-ID <tenant-ID>
spring.cloud.azure.cosmos.database Ihre Datenbank <database-name>
spring.cloud.azure.cosmos.endpoint Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielswert
AZURE_COSMOS_LISTCONNECTIONSTRINGURL Die URL zum Abrufen der Verbindungszeichenfolge 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 Ihr verwalteter Identitätsumfang https://management.azure.com/.default
AZURE_COSMOS_CLIENTID Die ID Ihres geheimen Clientschlüssels <client-ID>
AZURE_COSMOS_CLIENTSECRET Ihr geheimer Clientschlüssel <client-secret>
AZURE_COSMOS_TENANTID Ihre Mandanten-ID <tenant-ID>
AZURE_COSMOS_RESOURCEENDPOINT Ihr Ressourcenendpunkt https://<database-server>.documents.azure.com:443/

Beispielcode

Nutzen Sie die folgenden Schritte und den folgenden Code, um eine Verbindung mit Azure Cosmos DB for NoSQL mithilfe eines Dienstprinzipals herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Microsoft.Azure.Cosmos
    dotnet add package Azure.Identity
    
  2. Authentifizieren Sie sich mithilfe des NuGet-Pakets Azure.Identity, und rufen Sie die Endpunkt-URL aus der von Service Connector hinzugefügten Umgebungsvariablen ab. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

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

Nächste Schritte

Befolgen Sie die unten aufgeführten Tutorials, um mehr über Service Connector zu erfahren.