Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När ett program behöver åtkomst till en Azure-resurs, till exempel Storage, Key Vault eller Cognitive Services, måste programmet autentiseras till Azure. Detta gäller för alla program, oavsett om de distribueras till Azure, distribueras lokalt eller under utveckling på en lokal arbetsstation för utvecklare. Den här artikeln beskriver de rekommenderade metoderna för att autentisera en app till Azure när du använder Azure SDK för JavaScript.
Rekommenderad appautentiseringsmetod
Den rekommenderade metoden är att låta dina appar använda tokenbaserad autentisering i stället för anslutningssträngar eller nycklar när de autentiserar till Azure-resurser. Azure Identity-biblioteket tillhandahåller tokenbaserad autentisering och gör att appar smidigt kan autentisera till Azure-resurser oavsett om appen är i lokal utveckling, distribueras till Azure eller distribueras till en lokal server.
Den specifika typen av tokenbaserad autentisering som en app ska använda för att autentisera till Azure-resurser beror på var appen körs och visas i följande diagram.
| Miljö | Autentisering |
|---|---|
| Lokal | När en utvecklare kör en app under lokal utveckling – Appen kan autentisera till Azure med antingen ett huvudnamn för programtjänsten för lokal utveckling eller med hjälp av utvecklarens Azure-autentiseringsuppgifter. Vart och ett av dessa alternativ beskrivs mer detaljerat i avsnittet autentisering under lokal utveckling. |
| Azure | När en app finns i Azure – Appen bör autentiseras mot Azure-resurser med hjälp av en hanterad identitet. Det här alternativet beskrivs mer detaljerat nedan i avsnittet autentisering i servermiljöer. |
| Lokalt installerad | När en app hanteras och distribueras lokalt – Appen bör autentiseras mot Azure-resurser med hjälp av ett huvudnamn för programtjänsten. Det här alternativet beskrivs mer detaljerat nedan i avsnittet autentisering i servermiljöer. |
Fördelar med tokenbaserad autentisering
När du skapar appar för Azure rekommenderar vi starkt att du använder tokenbaserad autentisering i stället för hemligheter som anslutningssträngar eller nycklar. StandardAzureCredential erbjuder tokenbaserad autentisering.
| Tokenbaserad autentisering | Hemligheter (anslutningssträngar och nycklar) |
|---|---|
| Principen om minsta behörighet upprättar de specifika behörigheter som krävs av appen på Azure-resursen. | En anslutningssträng eller nyckel ger azure-resursen fullständiga rättigheter. |
| Det finns ingen programhemlighet att lagra. | Måste lagra och rotera hemligheter i appinställningen eller miljövariabeln. |
| Azure Identity-biblioteket hanterar token åt dig i bakgrunden. Detta gör det enkelt att använda tokenbaserad autentisering som en anslutningssträng. | Hemligheter hanteras inte. |
Användning av anslutningssträngar bör begränsas till inledande konceptbevisappar eller utvecklingsprototyper som inte har åtkomst till produktionsdata eller känsliga data. Annars bör de tokenbaserade autentiseringsklasserna som är tillgängliga i Azure Identity-biblioteket alltid föredras när du autentiserar till Azure-resurser.
Använd följande bibliotek:
StandardAzureCredential
Klassen DefaultAzureCredential som tillhandahålls av Azure Identity-biblioteket gör att appar kan använda olika autentiseringsmetoder beroende på vilken miljö de körs i. Det här beteendet gör att appar kan höjas upp från lokal utveckling till att testa miljöer till produktion utan kodändringar. Du konfigurerar lämplig autentiseringsmetod för varje miljö och DefaultAzureCredential identifierar och använder den autentiseringsmetoden automatiskt. Användning av DefaultAzureCredential bör föredras framför att manuellt koda villkorslogik eller funktionsflaggor för att använda olika autentiseringsmetoder i olika miljöer.
Information om hur du använder DefaultAzureCredential beskrivs i Använd DefaultAzureCredential i ett program.
Autentisering i servermiljöer
När du är värd för en servermiljö bör varje program tilldelas en unik programidentitet per miljö. I Azure representeras en appidentitet av ett huvudnamn för tjänsten, en särskild typ av säkerhetsobjekt som är avsett att identifiera och autentisera appar till Azure. Vilken typ av tjänsthuvudnamn som ska användas för din app beror på var appen körs.
Autentisering under lokal utveckling
När ett program körs på en utvecklares arbetsstation under lokal utveckling måste den lokala miljön fortfarande autentiseras mot alla Azure-tjänster som används av appen.
Använda DefaultAzureCredential i ett program
DefaultAzureCredential är en åsiktsbaserad, ordnad sekvens med mekanismer för autentisering till Microsoft Entra-ID. Varje autentiseringsmekanism är en klass som härleds från klassen TokenCredential och kallas för en autentisering. Vid körning försöker DefaultAzureCredential autentisera med hjälp av den första autentiseringsuppgiften. Om det misslyckas att erhålla en åtkomsttoken prövas nästa referens i sekvensen och så vidare, tills en åtkomsttoken framgångsrikt har erhållits. På så sätt kan din app använda olika autentiseringsuppgifter i olika miljöer utan att skriva miljöspecifik kod.
Om du vill använda DefaultAzureCredential lägger du till paketet @azure/identitet i ditt program.
npm install @azure/identity
Sedan visar följande kodexempel hur du instansierar ett DefaultAzureCredential objekt och använder det med en Azure SDK-tjänstklientklass – i det här fallet en BlobServiceClient som används för att komma åt Azure Blob Storage.
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config';
const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
new DefaultAzureCredential()
);
DefaultAzureCredential identifierar automatiskt den autentiseringsmekanism som konfigurerats för appen och hämtar nödvändiga token för att autentisera appen till Azure. Om ett program använder mer än en SDK-klient kan samma autentiseringsobjekt användas med varje SDK-klientobjekt.