Dela via


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-portalen eller Azure CLI.

Logga in på Azure-portalen och följ dessa steg.

Instruktioner Skärmbild
I Azure-portalen:
  1. Ange appregistreringar i sökfältet överst i Azure-portalen.
  2. Välj objektet med etiketten Appregistreringar under rubriken Tjänster på menyn som visas under sökfältet.
En skärmbild som visar hur du använder det översta sökfältet i Azure-portalen för att hitta och navigera till sidan Appregistreringar.
På sidan Appregistreringar väljer du + Ny registrering. En skärmbild som visar platsen för knappen Ny registrering på sidan Appregistreringar.
På sidan Registrera ett program fyller du i formuläret på följande sätt.
  1. Namn → Ange ett namn för appregistreringen i Azure. Det rekommenderas att det här namnet inkluderar appnamnet och miljön (test, prod) som appregistreringen är till för.
  2. Kontotyper som stöds → endast konton i den här organisationskatalogen.
Välj Registrera för att registrera din app och skapa programtjänstens huvudnamn.
En skärmbild för att fylla i Registrera genom att ge appen ett namn och ange kontotyper som stöds som konton i den här organisationskatalogen.
På sidan Appregistrering för din app:
  1. Program-ID → Det här är det app-ID som din app använder för att komma åt Azure under den lokala utvecklingen. Kopiera det här värdet till en tillfällig plats i en textredigerare eftersom du behöver det i ett framtida steg.
  2. Katalog-ID → Det här värdet behövs också av din app när den autentiseras till Azure. Kopiera det här värdet till en tillfällig plats i en textredigerare. Det behövs också i ett framtida steg.
  3. Klientautentiseringsuppgifter → Du måste ange klientautentiseringsuppgifterna för appen innan appen kan autentisera till Azure och använda Azure-tjänster. Välj Lägg till ett certifikat eller en hemlighet för att lägga till autentiseringsuppgifter för din app.
En skärmbild av appregistreringen efter slutförandet. Den här skärmbilden visar program- och klient-ID:t, som kommer att behövas i ett framtida steg.
På sidan Certifikat och hemligheter väljer du + Ny klienthemlighet. En skärmbild som visar platsen för länken som ska användas för att skapa en ny klienthemlighet på sidan certifikat och hemligheter.
Dialogrutan Lägg till en klienthemlighet visas till höger på sidan. I den här dialogrutan:
  1. Beskrivning → Ange värdet Aktuell.
  2. Upphör → Välj ett värde på 24 månader.
Välj Lägg till för att lägga till hemligheten.

VIKTIGT: Ange en påminnelse i kalendern före hemlighetens förfallodatum. På så sätt kan du lägga till en ny hemlighet före och uppdatera dina appar innan hemligheten upphör att gälla och undvika tjänstavbrott i appen.
En skärmbild som visar sidan där en ny klienthemlighet läggs till för programtjänstens huvudnamn som skapats av appregistreringsprocessen.
Sidan Certifikat och hemligheter visar värdet för klienthemligheten.

Kopiera det här värdet till en tillfällig plats i en textredigerare eftersom du behöver det i ett framtida steg.

VIKTIGT! Det här är den enda gången du ser det här värdet. När du lämnar eller uppdaterar den här sidan kan du inte se det här värdet igen. Du kan lägga till en annan klienthemlighet utan att ogiltigförklara den här klienthemligheten, men det här värdet visas inte igen.
En skärmbild som visar sidan med den genererade klienthemligheten.

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.

Instruktioner Skärmbild
Leta upp resursgruppen för ditt program genom att söka efter resursgruppens namn med hjälp av sökrutan överst i Azure-portalen.

Gå till resursgruppen genom att välja resursgruppens namn under rubriken Resursgrupper i dialogrutan.
En skärmbild som visar den översta sökrutan i Azure-portalen för att hitta och navigera till den resursgrupp som du vill tilldela roller (behörigheter) till.
På sidan för resursgruppen väljer du Åtkomstkontroll (IAM) på den vänstra menyn. En skärmbild av resursgruppssidan som visar platsen för menyalternativet Åtkomstkontroll (IAM).
På sidan Åtkomstkontroll (IAM):
  1. Välj fliken Rolltilldelningar.
  2. Välj + Lägg till på den översta menyn och sedan Lägg till rolltilldelning från den resulterande nedrullningsbara menyn.
En skärmbild som visar hur du navigerar till fliken rolltilldelningar och platsen för knappen som används för att lägga till rolltilldelningar i en resursgrupp.
sidan Lägg till rolltilldelning visas alla roller som kan tilldelas för resursgruppen.
  1. Använd sökrutan för att filtrera listan till en mer hanterbar storlek. Det här exemplet visar hur du filtrerar efter Storage Blob-roller.
  2. Välj den roll du vill tilldela.
    Välj Nästa för att gå till nästa skärm.
En skärmbild som visar hur du filtrerar och väljer rolltilldelningar som ska läggas till i resursgruppen.
På nästa sida För att lägga till rolltilldelning kan du ange vilken användare som ska tilldela rollen till.
  1. Välj Användare, grupp eller tjänstens huvudnamn under Tilldela åtkomst till.
  2. Välj + Välj medlemmar under Medlemmar
En dialogruta öppnas till höger i Azure-portalen.
En skärmbild som visar alternativknappen för att välja för att tilldela en roll till en Microsoft Entra-grupp och länken som används för att välja den grupp som rollen ska tilldelas till.
I dialogrutan Välj medlemmar:
  1. Textrutan Välj kan användas för att filtrera listan över användare och grupper i din prenumeration. Om det behövs skriver du de första tecknen i tjänstens huvudnamn som du skapade för appen för att filtrera listan.
  2. Välj tjänstens huvudnamn som är associerat med ditt program.
Välj Välj längst ned i dialogrutan för att fortsätta.
En skärmbild som visar hur du filtrerar efter och väljer Microsoft Entra-gruppen för programmet i dialogrutan Välj medlemmar.
Tjänstens huvudnamn visas som valt på skärmen Lägg till rolltilldelning .

Välj Granska + tilldela för att gå till den sista sidan och sedan Granska + tilldela igen för att slutföra processen.
En skärmbild som visar sidan Lägg till rolltilldelning och platsen för knappen Granska + tilldela som används för att slutföra processen.

3 – Konfigurera miljövariabler för program

Du måste ange AZURE_CLIENT_IDmiljövariablerna , AZURE_TENANT_IDoch 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:

  1. DefaultAzureCredential Importera klassen från modulen@azure/identity.
  2. Skapa ett DefaultAzureCredential objekt.
  3. 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_IDoch AZURE_CLIENT_SECRET för programtjänstens huvudnamnsinformation att ansluta till Azure med.