Dela via


Självstudie: Lagra och använda Azure Cosmos DB-autentiseringsuppgifter med Azure Key Vault

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

Viktigt!

Vi rekommenderar att du kommer åt Azure Cosmos DB genom att använda en systemtilldelad hanterad identitet. Om både den hanterade identitetslösningen och den certbaserade lösningen inte uppfyller dina behov använder du Azure Key Vault-lösningen i den här artikeln.

Om du använder Azure Cosmos DB som databas ansluter du till databaser, container och objekt med hjälp av en SDK, API-slutpunkten och antingen den primära eller sekundära nyckeln.

Det är inte bra att lagra slutpunkts-URI:n och känsliga lässkrivningsnycklar direkt i programkoden eller konfigurationsfilen. Helst läss dessa data från miljövariabler i värden. I Azure App Service kan du med appinställningar mata in autentiseringsuppgifter för körning för ditt Azure Cosmos DB-konto utan att utvecklare behöver lagra dessa autentiseringsuppgifter på ett osäkert sätt i klartext.

Azure Key Vault itererar vidare den här bästa metoden genom att låta dig lagra dessa autentiseringsuppgifter på ett säkert sätt samtidigt som du ger tjänster som Azure App Service hanterad åtkomst till autentiseringsuppgifterna. Azure App Service läser säkert dina autentiseringsuppgifter från Azure Key Vault och matar in dessa autentiseringsuppgifter i ditt program som körs.

Med den här bästa metoden kan utvecklare lagra autentiseringsuppgifterna för verktyg som Azure Cosmos DB-emulatorn eller Prova Azure Cosmos DB kostnadsfritt under utvecklingen. Sedan kan driftteamet se till att rätt produktionsinställningar matas in vid körning.

I den här självstudien lär du dig att:

  • Skapa en Azure Key Vault-instans
  • Lägga till Azure Cosmos DB-autentiseringsuppgifter som hemligheter i nyckelvalvet
  • Skapa och registrera en Azure App Service-resurs och bevilja "läsnyckel"-behörigheter
  • Mata in key vault-hemligheter i App Service-resursen

Kommentar

Den här självstudien och exempelprogrammet använder ett Azure Cosmos DB för NoSQL-konto. Du kan utföra många av samma steg med hjälp av andra API:er.

Förutsättningar

Innan du börjar: Hämta autentiseringsuppgifter för Azure Cosmos DB

Innan du börjar får du autentiseringsuppgifterna för ditt befintliga konto.

  1. Gå till sidan Azure Portal för det befintliga Azure Cosmos DB för NoSQL-kontot.

  2. På sidan Azure Cosmos DB för NoSQL-konto väljer du menyalternativet Nycklar i navigeringsmenyn.

    Skärmbild av en Azure Cosmos DB SQL API-kontosida. Alternativet Nycklar är markerat i navigeringsmenyn.

  3. Registrera värdena från fälten URI och PRIMÄRNYCKEL . Du använder dessa värden senare i den här självstudien.

    Skärmbild av sidan Nycklar med olika autentiseringsuppgifter för ett Azure Cosmos DB SQL API-konto.

Skapa en Azure Key Vault-resurs

Skapa först ett nytt nyckelvalv för att lagra ditt API för NoSQL-autentiseringsuppgifter.

  1. Logga in på Azure-portalen.

  2. Välj Skapa ett resurssäkerhetsnyckelvalv > >.

  3. På sidan Skapa nyckelvalv anger du följande information:

    Inställning beskrivning
    Abonnemang Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos-kontot.
    Resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen.
    Namn på nyckelvalv Ange ett globalt unikt namn för ditt nyckelvalv.
    Region Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
    Prisnivå Välj Standard.
  4. Lämna de återstående inställningarna till sina standardvärden.

  5. Välj Granska + skapa.

  6. Granska de inställningar du anger och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visas Distributionen är klar innan du går vidare.

Lägga till Azure Cosmos DB-åtkomstnycklar i Key Vault

Lagra nu dina Azure Cosmos DB-autentiseringsuppgifter som hemligheter i nyckelvalvet.

  1. Välj Gå till resurs för att gå till resurssidan för Azure Key Vault.

  2. På resurssidan för Azure Key Vault väljer du menyalternativet Hemligheter i navigeringsmenyn.

  3. Välj Generera/importera på menyn.

    Skärmbild av alternativet Generera/importera på en nyckelvalvsmeny.

  4. På sidan Skapa en hemlighet anger du följande information:

    Inställning beskrivning
    Alternativ för uppladdning Manuell
    Namn cosmos-endpoint
    Hemligt värde Ange den URI som du kopierade tidigare i den här självstudien.

    Skärmbild av dialogrutan Skapa en hemlighet i Azure Portal med information om en URI-hemlighet.

  5. Välj Skapa för att skapa den nya cosmos-endpoint-hemligheten .

  6. Välj Generera/importera på menyn igen. På sidan Skapa en hemlighet anger du följande information:

    Inställning beskrivning
    Alternativ för uppladdning Manuell
    Namn cosmos-readwrite-key
    Hemligt värde Ange primärnyckeln som du kopierade tidigare i den här självstudien.

    Skärmbild av dialogrutan Skapa en hemlighet i Azure Portal med information om en primärnyckelhemlighet.

  7. Välj Skapa för att skapa den nya hemligheten cosmos-readwrite-key .

  8. När hemligheterna har skapats visar du dem i listan över hemligheter på sidan Hemligheter .

    Skärmbild av listan med hemligheter för ett nyckelvalv.

  9. Välj varje nyckel, välj den senaste versionen och kopiera sedan den hemliga identifieraren. Du använder identifieraren för hemligheterna cosmos-endpoint och cosmos-readwrite-key senare i den här självstudien.

    Dricks

    Den hemliga identifieraren kommer att vara i det här formatet https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>. Om namnet på nyckelvalvet till exempel är msdocs-key-vault är namnet på nyckeln cosmos-readwrite-key och versionen om 83b995e363d94799ac6cf487ae0e12e. Då skulle den hemliga identifieraren vara https://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e.

    Skärmbild av en hemlig identifierare för en nyckelvalvshemlighet med namnet cosmos-readwrite-key.

Skapa och registrera en Azure-webbapp med Azure Key Vault

I det här avsnittet skapar du en ny Azure-webbapp, distribuerar ett exempelprogram och registrerar sedan webbappens hanterade identitet med Azure Key Vault.

  1. Skapa en ny GitHub-lagringsplats med hjälp av mallen cosmos-db-nosql-dotnet-sample-web-environment-variables.

  2. I Azure Portal väljer du Skapa en resurswebbapp > >.

  3. På sidan Skapa webbapp och fliken Grundläggande anger du följande information:

    Inställning beskrivning
    Abonnemang Välj den Azure-prenumeration som du vill använda för det här Azure Cosmos-kontot.
    Resursgrupp Välj en resursgrupp eller välj Skapa ny och ange sedan ett unikt namn för den nya resursgruppen.
    Namn Ange ett globalt unikt namn för webbappen.
    Publicera Välj Kod.
    Körningsstack Välj .NET 6 (LTS).
    Operativsystem Välj Windows.
    Region Välj en geografisk plats som värd för ditt Azure Cosmos DB-konto. Använd den plats som är närmast dina användare för att ge dem så snabb åtkomst till data som möjligt.
  4. Lämna de återstående inställningarna till sina standardvärden.

  5. Välj Nästa: Distribution.

  6. På fliken Distribution anger du följande information:

    Inställning beskrivning
    Kontinuerlig distribution Välj Aktivera.
    GitHub-konto Välj Auktorisera. Följ auktoriseringsanvisningarna för GitHub-kontot för att ge Azure behörighet att läsa din nyligen skapade GitHub-lagringsplats.
    Organisation Välj organisationen för din nya GitHub-lagringsplats.
    Lagringsplats Välj namnet på din nya GitHub-lagringsplats.
    Gren Välj huvud.
  7. Välj Granska + skapa.

  8. Granska de inställningar du anger och välj sedan Skapa. Det tar några minuter att skapa kontot. Vänta tills portalsidan visas Distributionen är klar innan du går vidare.

  9. Du kan behöva vänta några minuter tills webbprogrammet distribueras till webbappen. På resurssidan för Azure Web App väljer du Bläddra för att se appens standardtillstånd.

    Skärmbild av webbprogrammet i standardtillståndet utan autentiseringsuppgifter.

  10. Välj menyalternativet Identitetsnavigering .

  11. På sidan Identitet väljer du för Systemtilldelad hanterad identitet och väljer sedan Spara.

    Skärmbild av systemtilldelad hanterad identitet som aktiveras från identitetssidan.

Mata in Azure Key Vault-hemligheter som Azure Web App-appinställningar

Slutligen matar du in hemligheterna som lagras i ditt nyckelvalv som appinställningar i webbappen. Appinställningarna matar i sin tur in autentiseringsuppgifterna i programmet vid körning utan att lagra autentiseringsuppgifterna i klartext.

  1. Gå tillbaka till nyckelvalvssidan i Azure Portal. Välj Åtkomstprinciper på navigeringsmenyn.

  2. På sidan Åtkomstprinciper väljer du Skapa på menyn.

    Skärmbild av alternativet Skapa på menyn Åtkomstprinciper.

  3. På fliken Behörighetersidan Skapa en åtkomstprincip väljer du alternativet Hämta i avsnittet Hemliga behörigheter. Välj Nästa.

    Skärmbild av get-behörigheten aktiverad för hemliga behörigheter.

  4. På fliken Huvudnamn väljer du namnet på webbappen som du skapade tidigare i den här självstudien. Välj Nästa.

    Skärmbild av en hanterad identitet för en webbapp som tilldelats en behörighet.

    Kommentar

    I det här exemplet får webbappen namnet msdocs-dotnet-web.

  5. Välj Nästa igen för att hoppa över fliken Program . På fliken Granska + skapa granskar du de inställningar du anger och väljer sedan Skapa.

  6. Gå tillbaka till webbappsidan i Azure Portal. Välj Konfiguration på navigeringsmenyn.

  7. På sidan Konfiguration väljer du Ny programinställning. I dialogrutan Lägg till/redigera program anger du följande information:

    Inställning Description
    Namn CREDENTIALS__ENDPOINT
    Tangent Hämta den hemliga identifieraren för cosmos-endpoint-hemligheten i ditt nyckelvalv som du skapade tidigare i den här självstudien. Ange identifieraren i följande format: @Microsoft.KeyVault(SecretUri=<secret-identifier>).

    Dricks

    Kontrollera att miljövariabeln har ett dubbelt understreck (__) värde i stället för ett enda understreck. Det dubbla understrecket är en nyckeldelimeter som stöds av .NET på alla plattformar. Mer information finns i konfiguration av miljövariabler.

    Kommentar

    Om den hemliga identifieraren till exempel är https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07är @Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)referensen .

    Skärmbild av dialogrutan Lägg till/redigera programinställning med en ny appinställning som refererar till en nyckelvalvshemlighet.

  8. Välj OK för att spara den nya appinställningen

  9. Välj Ny programinställning igen. I dialogrutan Lägg till/redigera program anger du följande information och väljer sedan OK:

    Inställning Description
    Namn CREDENTIALS__KEY
    Tangent Hämta den hemliga identifieraren för hemligheten cosmos-readwrite-key i ditt nyckelvalv som du skapade tidigare i den här självstudien. Ange identifieraren i följande format: @Microsoft.KeyVault(SecretUri=<secret-identifier>).
  10. På sidan Konfiguration väljer du Spara för att uppdatera appinställningarna för webbappen.

    Skärmbild av alternativet Spara på konfigurationssidans meny.

  11. Vänta några minuter tills webbappen startas om med de nya appinställningarna. I det här läget bör de nya appinställningarna ange att de är en referens för nyckelvalvet.

    Skärmbild av nyckelvalvsreferensbeteckningen för två appinställningar i en webbapp.

  12. Välj Översikt på navigeringsmenyn. Välj Bläddra för att se appen med ifyllda autentiseringsuppgifter.

    Skärmbild av webbprogrammet med giltiga autentiseringsuppgifter för Azure Cosmos DB för NoSQL-konto.

Nästa steg