Autentisera JavaScript-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton
När du skapar molnprogram måste utvecklare felsöka och testa program på sin lokala arbetsstation. När ett program körs på en utvecklares arbetsstation under den lokala utvecklingen måste det fortfarande autentiseras mot alla Azure-tjänster som används av appen. Den här artikeln beskriver hur du använder en utvecklares Azure-autentiseringsuppgifter för att autentisera appen till Azure under den lokala utvecklingen.
För att en app ska kunna autentisera till Azure under lokal utveckling med utvecklarens Azure-autentiseringsuppgifter måste utvecklaren vara inloggad på Azure från Visual Studio Code Azure Tools-tillägget, Azure CLI eller Azure PowerShell. Azure SDK för JavaScript kan identifiera att utvecklaren är inloggad från något av dessa verktyg och sedan hämta nödvändiga autentiseringsuppgifter från cacheminnet för autentiseringsuppgifter för att autentisera appen till Azure som inloggad användare.
Den här metoden är enklast att konfigurera för ett utvecklingsteam eftersom den utnyttjar utvecklarnas befintliga Azure-konton. En utvecklares konto kommer dock sannolikt att ha fler behörigheter än vad som krävs av programmet, vilket överskrider de behörigheter som appen körs med i produktion. Alternativt kan du skapa huvudnamn för programtjänsten som ska användas under den lokala utvecklingen, vilket kan begränsas till att endast ha den åtkomst som krävs av appen.
1 – Skapa Microsoft Entra-grupp för lokal utveckling
Eftersom det nästan alltid finns flera utvecklare som arbetar med ett program rekommenderar vi att du först skapar en Microsoft Entra-grupp för att kapsla in de roller (behörigheter) som appen behöver i lokal utveckling. Detta ger följande fördelar.
- Varje utvecklare är säker på att ha samma roller tilldelade eftersom roller tilldelas på gruppnivå.
- Om en ny roll behövs för appen behöver den bara läggas till i Microsoft Entra-gruppen för appen.
- Om en ny utvecklare ansluter till teamet måste de helt enkelt läggas till i rätt Microsoft Entra-grupp för att få rätt behörighet att arbeta med appen.
Om du har en befintlig Microsoft Entra-grupp för ditt utvecklingsteam kan du använda den gruppen. I annat fall utför du följande steg för att skapa en Microsoft Entra-grupp.
2 – Tilldela roller till Microsoft Entra-gruppen
Därefter måste du bestämma vilka roller (behörigheter) din app behöver på vilka resurser och tilldela dessa roller till din app. I det här exemplet tilldelas rollerna till den Microsoft Entra-grupp som skapades i steg 1. Roller kan tilldelas en roll i ett resurs-, resursgrupps- eller prenumerationsomfång. Det här exemplet visar hur du tilldelar roller i resursgruppens omfång eftersom de flesta program grupperar alla sina Azure-resurser i en enda resursgrupp.
3 – Logga in på Azure med VS Code, Azure CLI eller Azure PowerShell
Öppna en terminal på utvecklararbetsstationen och logga in på Azure från Azure PowerShell.
Connect-AzAccount
4 – Implementera DefaultAzureCredential i ditt program
Om du vill autentisera DefaultAzureCredential
Azure SDK-klientobjekt till Azure bör ditt program använda klassen från @azure/identity
paketet. I det här scenariot DefaultAzureCredential
kontrollerar sekventiellt om utvecklaren har loggat in på Azure med hjälp av VS Code Azure-verktygstillägget, Azure CLI eller Azure PowerShell. Om utvecklaren är inloggad i Azure med något av dessa verktyg används de autentiseringsuppgifter som används för att logga in på verktyget av appen för att autentisera till Azure med.
Börja med att lägga till @azure/identitetspaketet i ditt program.
npm install @azure/identity
För alla JavaScript-kod som skapar ett Azure SDK-klientobjekt i din app vill du sedan:
DefaultAzureCredential
Importera klassen från modulen@azure/identity
.- Skapa ett
DefaultAzureCredential
objekt. - Skicka objektet
DefaultAzureCredential
till Azure SDK-klientobjektkonstruktorn.
Ett exempel på detta visas i följande kodsegment.
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
// Acquire a credential object
const tokenCredential = DefaultAzureCredential();
const blobServiceClient = BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
tokenCredential
);
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.