Dela via


Konfigurera Microsoft Entra ID-autentisering för ett Azure Cosmos DB for MongoDB vCore-kluster

I den här artikeln får du lära dig hur du konfigurerar Microsoft Entra ID-autentisering för en Azure Cosmos DB för MongoDB vCore. Stegen i den här guiden konfigurerar ett befintligt Azure Cosmos DB for MongoDB vCore-kluster för att använda Microsoft Entra-ID-autentisering med din mänskliga identitet (för närvarande inloggat konto) eller ett Säkerhetsobjekt för Microsoft Entra ID, till exempel hanterad identitet. Microsoft Entra ID-autentisering ger säker och sömlös åtkomst till databasen med hjälp av organisationens befintliga identiteter. Den här guiden går igenom stegen för att konfigurera autentisering, registrera användare eller tjänstens huvudnamn och verifiera konfigurationen.

När du skapar ett Azure Cosmos DB for MongoDB vCore-kluster konfigureras klustret att använda intern autentisering som standard. Om du vill aktivera autentisering med Hjälp av Entra-ID aktiverar du Entra ID-autentiseringsmetoden och lägger till Entra-ID-användare i klustret.

Förutsättningar

  • Den senaste versionen av Azure CLI i Azure Cloud Shell.

    • Om du föredrar att köra CLI-referenskommandon lokalt loggar du in på Azure CLI med hjälp az login av kommandot .

Hämta identitetsmetadata

Hämta unik identifierare för Entra ID-användarhantering

Hämta först den unika identifierare som används för att hantera Entra ID-huvudnamn i klustret.

  1. Hämta information för det inloggade kontot med hjälp av az ad signed-in-user.

    az ad signed-in-user show
    
  2. Hämta information för ett annat konto med hjälp av az ad user show.

    az ad user show --id kai@adventure-works.com
    
  3. Kommandot matar ut ett JSON-svar som innehåller olika fält.

    {
      "@odata.context": "<https://graph.microsoft.com/v1.0/$metadata#users/$entity>",
      "businessPhones": [],
      "displayName": "Kai Carter",
      "givenName": "Kai",
      "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "jobTitle": "Senior Sales Representative",
      "mail": "<kai@adventure-works.com>",
      "mobilePhone": null,
      "officeLocation": "Redmond",
      "preferredLanguage": null,
      "surname": "Carter",
      "userPrincipalName": "<kai@adventure-works.com>"
    }
    
  4. Registrera värdet för id egenskapen. Den här egenskapen är den unika identifieraren för din huvudman och kallas ibland för huvudmans-ID. Du använder det här värdet i nästa stegserie.

Hämta eget namn med hjälp av unik identifierare

Följ dessa steg när du behöver hämta ett eget namn med hjälp av unik identifierare.

  1. Hämta information för ett annat konto med hjälp av az ad user show.

    az ad user show --id aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
    
  2. Kommandot matar ut ett JSON-svar som innehåller olika fält.

    {
      "@odata.context": "<https://graph.microsoft.com/v1.0/$metadata#users/$entity>",
      "businessPhones": [],
      "displayName": "Kai Carter",
      "givenName": "Kai",
      "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "jobTitle": "Senior Sales Representative",
      "mail": "<kai@adventure-works.com>",
      "mobilePhone": null,
      "officeLocation": "Redmond",
      "preferredLanguage": null,
      "surname": "Carter",
      "userPrincipalName": "<kai@adventure-works.com>"
    }
    
  3. Observera värdet för mail egenskaperna och displayName .

Hämta unik identifierare för Entra ID-tjänstens huvudidentitet

Om du vill använda en hanterad identitet i ditt program eller för att logga in med Entra-ID autentiseringsuppgifter i verktyg som MongoDB-gränssnittet eller Compass måste du hämta både principalID och clientID för den hanterade identiteten.

  1. Hämta information om den hanterade identiteten med hjälp av ett GET REST API-anrop. Ersätt variabler som börjar med $-tecknet med de faktiska värdena.

    az rest --method "GET" --url "https://management.azure.com/subscriptions/$subscription-id/resourcegroups/$resource-group-name/providers/microsoft.managedidentity/userassignedidentities/$managed-identity-name?api-version=2024-11-30" 
    
  2. Kommandot matar ut ett JSON-svar som innehåller olika fält.

    {
      "location": "eastus",
      "name": "managed-identity-name",
      "properties": {
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "isolationScope": "None",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
      },
      "tags": {},
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  3. Observera clientID- och principalId-värdena i utdata.

    1. Använd principalId för att lägga till den hanterade identiteten i klustret som en Entra-ID-entitet.
    2. Använd clientID för att ansluta till klustret via MongoDB Shell eller Compass eller i din programkod med entra-ID-autentisering.

Hantera klusterautentiseringsmetoder

Använd följande steg för att ändra autentiseringsmetoder i ditt befintliga kluster. Lägg sedan till en Entra-ID-användare som mappats till din inloggade identitet i klustret. Du kan aktivera följande autentiseringsmetoder i klustret:

  • Endast intern DocumentDB-autentiseringsmetod
  • Interna DocumentDB- och Microsoft Entra ID-autentiseringsmetoder
  • Microsoft Entra ID-autentiseringsmetod

Viktigt!

När klustret skapas måste du ha den interna DocumentDB-autentiseringsmetoden aktiverad och ange interna autentiseringsuppgifter för administrativa användare. Du kan inaktivera den interna DocumentDB-autentiseringsmetoden när det nya klustret har slutfört etableringen.

  1. Välj Autentisering under Inställningar i sidopanelen för klustret.

  2. I avsnittet Autentiseringsmetoder väljer du Internt DocumentDB- och Microsoft Entra-ID för att aktivera Microsoft Entra-ID-autentisering.

    Skärmbild som visar hur du aktiverar Microsoft Entra ID-autentiseringsmetod i ett befintligt kluster.

  3. Välj Spara för att bekräfta att autentiseringsmetoden ändras.

    Skärmbild som visar platsen för knappen Spara för att bekräfta att autentiseringsmetoden ändras i ett befintligt kluster.

Anmärkning

Om du behöver inaktivera den interna DocumentDB-autentiseringsmetoden i klustret använder du Azure CLI- eller REST API-anrop.

Visa autentiseringsmetoder som är aktiverade i klustret

Följ de här stegen för att se autentiseringsmetoder som för närvarande är aktiverade i klustret.

  1. Välj Autentisering under Inställningar i sidopanelen för klustret.

  2. I avsnittet Autentiseringsmetoder kontrollerar du vilka autentiseringsmetoder som för närvarande är aktiverade i klustret.

    Skärmbild som visar hur du visar autentiseringsmetoder som för närvarande är aktiverade i klustret.

Hantera administrativa Entra-ID-användare i klustret

Följ de här stegen för att lägga tilladministrativa Entra-ID-användare i klustret eller ta bort administrativa Entra-ID-användare från det.

  1. Välj ett kluster med Microsoft Entra ID-autentiseringsmetod aktiverad.

  2. Välj Autentisering under Inställningar i sidopanelen för klustret.

  3. Så här lägger du till administrativa Entra-ID-användare:

    1. I avsnittet Microsoft Entra-ID-autentisering väljer du +Lägg till Microsoft Entra-ID för att öppna sidopanelen som gör det möjligt att lägga till Entra-ID-användare och säkerhetsobjekt i klustret.

      Skärmbild som visar hur du öppnar sidopanelen som gör det möjligt att lägga till Microsoft Entra-ID-användare och säkerhetsobjekt i klustret.

    2. I panelen Välj Microsoft Entra-ID-roller väljer du en eller flera Entra-ID-användare och bekräftar ditt val genom att välja Välj.

      Skärmbild som visar hur du väljer och lägger till administrativa Microsoft Entra-ID-användare och säkerhetsobjekt i klustret.

    Anmärkning

    När administrativa Microsoft Entra-ID-användare läggs till i klustret läggs deras identifierare i aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb formatet inte till mänskliga läsbara namn som kai@adventure-works.com läggs till i klustret.

  4. Välj Spara för att bekräfta att autentiseringsmetoden ändras.

  5. Så här tar du bort administrativa Entra-ID-användare från klustret:

    1. Hämta Entra-ID-identifierare för de användare som ska tas bort från klustret.

    2. I avsnittet Microsoft Entra-ID-autentisering väljer du Ta bort bredvid användarens identifierare för att ta bort användaren från klustret.

    Skärmbild som visar platsen för ikonen Ta bort som används för att ta bort Microsoft Entra-ID-användare och säkerhetsobjekt från klustret.

    Viktigt!

    Användaren tas bort från klustret direkt efter att Ta bort har valts.

Visa administrativa Entra-ID-användare i klustret

När du visar administrativa användare i ett kluster finns det alltid en inbyggd inbyggd administrativ användare som skapats under klusteretablering och alla administrativa Entra-ID-användare har lagts till i klustret i listan. Alla administrativa Entra-ID-användare replikeras till databasen.

Icke-administrativa Entra-ID-användare skapas i databasen. När du listar icke-administrativa användare i databasen innehåller listan alla administrativa och icke-administrativa Entra-ID-användare och alla sekundära (icke-administrativa) interna DocumentDB-användare.

Följ de här stegen för att se alla administrativa Entra-ID-användare som har lagts till i klustret.

  1. Välj ett kluster med Microsoft Entra ID-autentiseringsmetod aktiverad.

  2. Välj Autentisering under Inställningar i sidopanelen för klustret.

  3. I avsnittet Microsoft Entra-ID-autentisering hittar du listan över objekt-ID:er (unika identifierare) för de administrativa Entra-ID-användare som lagts till i klustret.

    Skärmbild som visar hur du visar listan över administrativa Microsoft Entra-ID-användare i klustret.

  4. Följ dessa steg för att hämta egna namn med hjälp av en unik identifierare.

Anmärkning

Ett Azure Cosmos DB for MongoDB vCore-kluster skapas med en inbyggd inbyggd DocumentDB-användare. Du kan lägga till fler interna DocumentDB-användare när klusteretablering har slutförts. Microsoft Entra-ID-användare som läggs till i klustret kommer att vara utöver interna DocumentDB-användare som definierats i samma kluster.

Hantera icke-administrativa Entra-ID-användare i klustret

Om du vill utföra hanteringsåtgärder för icke-administrativa Säkerhetsobjekt för Entra-ID, till exempel användare, måste du logga in på klustret med en administrativ Entra-ID-användare. Du kan göra det från programkoden eller från verktyg som MongoDB Shell och Compass.

Alla hanteringskommandon för icke-administrativa användare stöds för huvudtyperna servicePrincipal och user.

  1. Logga in på klustret med hjälp av en administrativ Entra-ID-användare i MongoDB-gränssnittet eller MongoDB Compass.

  2. Om du vill lägga till en icke-administrativ Entra-ID-användare med läs- och skrivbehörighet i klustret använder du följande createUser kommando:

    db.runCommand(
        {
            createUser:"user's-Entra-ID-identifier",
            roles : [
                { role:"clusterAdmin",db:"admin" },
                { role:"readWriteAnyDatabase", db:"admin" }
            ],
     	    customData:{"IdentityProvider":{"type":"MicrosoftEntraID", "properties":{"principalType":"user"}}}
        }
    )
    
  3. Om du vill lägga till en icke-administrativ Entra-ID-användare med skrivskyddad behörighet i klustret använder du följande createUser kommando:

    db.runCommand(
        {
            createUser:"user's-Entra-ID-identifier",
            roles : [
                { role:"readAnyDatabase", db:"admin" }
            ],
     	    customData:{"IdentityProvider":{"type":"MicrosoftEntraID", "properties":{"principalType":"user"}}}
        }
    )
    
  4. Om du vill ta bort en icke-administrativ Entra-ID-användare från klustret använder du dropUser kommandot:

    db.runCommand(
        {
            dropUser:"user's-Entra-ID-identifier"
        }
    )
    
  5. Om du vill visa en lista över alla Entra-ID och interna DocumentDB-användare i klustret använder du userInfo kommandot:

    db.runCommand(
        {
            usersInfo:1
        }
    )
    

    Anmärkning

    Alla Administrativa Entra-ID och interna DocumentDB-användare replikeras till databasen. På grund av den här replikeringen innehåller listan över användare alla administrativa och icke-administrativa Entra ID-användare samt inhemska DocumentDB-användare i klustret.

Ansluta till klustret

Du kan ansluta till klustret med antingen en anslutnings-URI eller ett objekt för anpassade inställningar från drivrutinen för önskat språk. I båda alternativen måste schemat vara inställt mongodb+srv på för att ansluta till klustret. Värden finns på antingen domänen *.global.mongocluster.cosmos.azure.com eller *.mongocluster.cosmos.azure.com beroende på om du använder det aktuella klustrets slutpunkt eller den globala läs- och skrivslutpunkten. Schemat +srv och värden *.global.* ser till att din klient är ansluten dynamiskt till lämpligt skrivbart kluster i en multiklusterkonfiguration även om en regionväxlingsåtgärd inträffar. I en konfiguration med ett kluster kan du använda antingen anslutningssträngen urskillningslöst.

Inställningen tls måste också vara aktiverad. De återstående rekommenderade inställningarna är konfigurationsinställningar för bästa praxis.

Alternativ Värde
schema mongodb+srv
värd <cluster-name>.global.mongocluster.cosmos.azure.com eller <cluster-name>.mongocluster.cosmos.azure.com
tls true
authMechanism MONGODB-OIDC
retrywrites false
maxIdleTimeMS 120000

Öppna Anslutningssträngar under Inställningar på sidan klusteregenskaper i Azure-portalen. Sidan Anslutningssträngar innehåller anslutningssträngar för de autentiseringsmetoder som är aktiverade i klustret. Anslutningssträngar för Microsoft Entra-ID finns i avsnittet Microsoft Entra-ID .

  • Global

    mongodb+srv://<cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&retrywrites=false&maxIdleTimeMS=120000
    
  • Kluster

    mongodb+srv://<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&retrywrites=false&maxIdleTimeMS=120000
    

Använda Entra-ID med Visual Studio Code, MongoDB Shell och MongoDB Compass

Du kan använda Entra ID-autentisering i olika verktyg, inklusive Visual Studio Code med DocumentDB-tillägget, MongoDB-gränssnittet och MongoDB Compass-verktygen. I Visual Studio Code kan du autentisera till klustret med den aktuella användaren som är inloggad i Visual Studio Code.

En hanterad Azure-identitet används för att logga in med hjälp av Etttra-ID till MonogDB-gränssnittet och Compass. Tilldela hanterad identitet till en virtuell Azure-dator (VM) och logga in på klustret från den virtuella datorn med MongoDB-gränssnittet eller Compass. En av de vanliga uppgifter som utförs i verktygen med Entra ID-autentisering är hantering av sekundära Entra-ID-användare i klustret. Den administrativa Entra-ID-användaren måste autentiseras i MongoDB-gränssnittet, Compass eller andra MongoDB-hanteringsverktyg för att kunna hantera sekundära Entra-ID-användare i klustret.

Ansluta till klustret med ett Entra-ID i Visual Studio Code

Följ den här vägledningen om du vill ansluta till ett Azure Cosmos DB for MongoDB vCore-kluster med Visual Studio Code med DocumentDB-tillägget och Entra ID-autentisering.

Anmärkning

När du autentiserar mot ett Azure Cosmos DB for MongoDB vCore-kluster med Entra ID i Visual Studio Code med DocumentDB-tillägget stöds inte funktionen shell. Följ dessa steg om du behöver använda MongoDB-gränssnittet med Entra-ID-autentisering.

Ansluta till klustret med entra-ID i MongoDB-gränssnittet

  1. Skapa en användartilldelad hanterad identitet.

  2. Tilldela hanterad identitet till en virtuell dator.

  3. Lägg till hanterad identitet i klustret som en Entra-ID-användare med hjälp av metadata för hanterad identitet.

  4. Om du vill ansluta till klustret använder du följande anslutningssträng i MongoDB-gränssnittet på den virtuella datorn:

    mongosh "mongodb+srv://<client-id>@<cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:https://ossrdbms-aad.database.windows.net" --oidcTrustedEndpoint    
    

    där clientID är den hanterade identitetens klient-ID.

Ansluta till klustret med Hjälp av Entra-ID i MongoDB Compass

Använd följande steg för att använda Entra-ID för att autentisera till klustret i MongoDB Compass.

  1. Skapa en användartilldelad hanterad identitet.

  2. Tilldela hanterad identitet till en virtuell dator.

  3. Lägg till hanterad identitet i klustret som en Entra-ID-användare med hjälp av metadata för hanterad identitet.

  4. Kör MongoDB Compass på den virtuella datorn.

  5. Välj + logga in till vänster bredvid Anslutningar för att lägga till en ny anslutning.

  6. Kontrollera att växlingsknappen Redigera anslutningssträng är aktiverad i fönstret Ny anslutning .

  7. Klistra in följande anslutningssträng i URI-indatarutan.

    mongodb+srv://<client-id>@<cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:https://ossrdbms-aad.database.windows.net
    

    där clientID är den hanterade identitetens klient-ID.

  8. Öppna Avancerade anslutningsalternativ.

  9. På fliken Allmänt kontrollerar du att mongodb+srv är markerat under Anslutningssträngschema.

  10. Gå till fliken Autentisering .

  11. Kontrollera att OIDC är markerat.

  12. Öppna OIDC-alternativ.

  13. Ange alternativet Överväg betrodd målslutpunkt .

  14. Välj Spara och anslut.