Autentisera till Azure-resurser från lokala JavaScript-appar
Appar som körs utanför Azure (till exempel lokalt eller i ett datacenter från tredje part) bör använda ett huvudnamn för programtjänsten för att autentisera till Azure vid åtkomst till Azure-resurser. Huvudobjekt för programtjänsten skapas med hjälp av appregistreringsprocessen i Azure. När ett huvudnamn för programtjänsten skapas genereras ett klient-ID och en klienthemlighet för din app. Du lagrar klient-ID, klienthemlighet och ditt klient-ID i miljövariabler så att Azure SDK för JavaScript använder miljövariablerna för att autentisera din app till Azure vid körning.
En annan appregistrering ska skapas för varje miljö (till exempel test, fas, produktion) som appen körs i. På så sätt kan miljöspecifika resursbehörigheter konfigureras för varje huvudnamn för tjänsten och se till att en app som distribueras till en miljö inte kommunicerar med Azure-resurser som ingår i en annan miljö.
1 – Registrera programmet i Azure
En app kan registreras med Azure med hjälp av antingen Azure Portal eller Azure CLI.
Logga in på Azure Portal och följ dessa steg.
2 – Tilldela roller till programtjänstens huvudnamn
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. Roller kan tilldelas en roll i ett resurs-, resursgrupps- eller prenumerationsomfång. Det här exemplet visar hur du tilldelar roller för tjänstens huvudnamn i resursgruppens omfång eftersom de flesta program grupperar alla sina Azure-resurser i en enda resursgrupp.
3 – Konfigurera miljövariabler för program
Du måste ange AZURE_CLIENT_ID
miljövariablerna , AZURE_TENANT_ID
och AZURE_CLIENT_SECRET
för den process som kör JavaScript-appen för att göra autentiseringsuppgifterna för programtjänstens huvudnamn tillgängliga för din app vid körning. Objektet DefaultAzureCredential
söker efter informationen om tjänstens huvudnamn i dessa miljövariabler.
AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>
4 – Implementera DefaultAzureCredential i programmet
För att autentisera DefaultAzureCredential
Azure SDK-klientobjekt till Azure bör ditt program använda klassen från @azure/identitetspaketet .
Lägg först till paketet @azure/identitet 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.
// connect-with-default-azure-credential.js
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()
);
När koden ovan instansierar DefaultAzureCredential
objektet DefaultAzureCredential
läser du miljövariablerna AZURE_SUBSCRIPTION_ID
, AZURE_TENANT_ID
, AZURE_CLIENT_ID
och AZURE_CLIENT_SECRET
för programtjänstens huvudnamnsinformation att ansluta till Azure med.