Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De aanbevolen methode voor het verifiëren van een door Azure gehoste app voor andere Azure-resources is het gebruik van een beheerde identiteit. Deze benadering wordt ondersteund voor de meeste Azure-services, waaronder apps die worden gehost op Azure App Service, Azure Container Apps en Azure Virtual Machines. Ontdek meer over verschillende verificatietechnieken en benaderingen op de overzichtspagina voor verificatie . In de volgende secties leert u het volgende:
- Essentiële concepten voor beheerde identiteiten
- Een door de gebruiker toegewezen beheerde identiteit voor uw app maken
- Rollen toewijzen aan de door de gebruiker toegewezen beheerde identiteit
- Verifiëren met behulp van de door de gebruiker toegewezen beheerde identiteit vanuit uw app-code
Essentiële concepten voor beheerde identiteiten
Met een beheerde identiteit kan uw app veilig verbinding maken met andere Azure-resources zonder gebruik te maken van geheime sleutels of andere toepassingsgeheimen. Intern houdt Azure de identiteit bij en met welke resources verbinding mag worden gemaakt. Azure gebruikt deze informatie om automatisch Microsoft Entra-tokens voor de app te verkrijgen, zodat deze verbinding kan maken met andere Azure-resources.
Er zijn twee typen beheerde identiteiten waarmee u rekening moet houden bij het configureren van uw gehoste app:
- Door het systeem toegewezen beheerde identiteiten worden rechtstreeks ingeschakeld op een Azure-resource en zijn gekoppeld aan de levenscyclus. Wanneer de resource wordt verwijderd, wordt de identiteit automatisch voor u verwijderd. Door het systeem toegewezen identiteiten bieden een minimalistische benadering voor het gebruik van beheerde identiteiten.
- Door de gebruiker toegewezen beheerde identiteiten worden gemaakt als zelfstandige Azure-resources en bieden meer flexibiliteit en mogelijkheden. Ze zijn ideaal voor oplossingen met meerdere Azure-resources die dezelfde identiteit en machtigingen moeten delen. Als bijvoorbeeld meerdere virtuele machines toegang moeten hebben tot dezelfde set Azure-resources, biedt een door de gebruiker toegewezen beheerde identiteit herbruikbaar en geoptimaliseerd beheer.
Aanbeveling
Meer informatie over het selecteren en beheren van door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten in het artikel met aanbevelingen voor aanbevolen procedures voor beheerde identiteiten.
In de volgende secties worden de stappen beschreven voor het inschakelen en gebruiken van een door de gebruiker toegewezen beheerde identiteit voor een door Azure gehoste app. Als u een door het systeem toegewezen beheerde identiteit wilt gebruiken, gaat u naar het artikel met door het systeem toegewezen beheerde identiteiten voor meer informatie.
Een door de gebruiker toegewezen beheerde identiteit maken
Door de gebruiker toegewezen beheerde identiteiten worden gemaakt als zelfstandige resources in uw Azure-abonnement met behulp van Azure Portal of de Azure CLI. Azure CLI-opdrachten kunnen worden uitgevoerd in Azure Cloud Shell of op een werkstation waarop de Azure CLI is geïnstalleerd.
Voer in Azure Portal beheerde identiteiten in de hoofdzoekbalk in en selecteer het overeenkomende resultaat onder de sectie Services .
Selecteer + Maken op de pagina Beheerde identiteiten.
Selecteer op de pagina Door de gebruiker toegewezen beheerde identiteit maken een abonnement, resourcegroep en regio voor de door de gebruiker toegewezen beheerde identiteit en geef vervolgens een naam op.
Selecteer Beoordelen en maken om uw invoer te controleren en te valideren.
Selecteer Maken om de door de gebruiker toegewezen beheerde identiteit te maken.
Nadat de identiteit is gemaakt, selecteert u Ga naar de resource.
Kopieer op de overzichtspagina van de nieuwe identiteit de waarde van de client-id die u later wilt gebruiken wanneer u de toepassingscode configureert.
De beheerde identiteit toewijzen aan uw app
Een door de gebruiker toegewezen beheerde identiteit kan worden gekoppeld aan een of meer Azure-resources. Alle resources die gebruikmaken van die identiteit krijgen de machtigingen die worden toegepast via de rollen van de identiteit.
Navigeer in Azure Portal naar de resource die als host fungeert voor uw app-code, zoals een Azure App Service- of Azure Container App-exemplaar.
Vouw op de overzichtspagina van de resource Instellingen uit en selecteer Identiteit in de navigatie.
Ga op de pagina Identity naar het tabblad Gebruiker toegewezen.
Selecteer + Toevoegen om het deelvenster Door de gebruiker toegewezen beheerde identiteit toevoegen te openen.
Gebruik in het deelvenster Door de gebruiker toegewezen beheerde identiteit toevoegen de vervolgkeuzelijst Abonnement om de zoekresultaten voor uw identiteiten te filteren. Gebruik het zoekvak door de gebruiker toegewezen beheerde identiteiten om de door de gebruiker toegewezen beheerde identiteit te zoeken die u hebt ingeschakeld voor de Azure-resource die als host fungeert voor uw app.
Selecteer de identiteit en kies Toevoegen onderaan het deelvenster om door te gaan.
Rollen toewijzen aan de beheerde identiteit
Bepaal vervolgens welke rollen uw app nodig heeft en wijs deze rollen toe aan de beheerde identiteit. U kunt rollen toewijzen aan een beheerde identiteit op de volgende bereiken:
- Resource: De toegewezen rollen zijn alleen van toepassing op die specifieke resource.
- Resourcegroep: De toegewezen rollen zijn van toepassing op alle resources in de resourcegroep.
- Abonnement: De toegewezen rollen zijn van toepassing op alle resources in het abonnement.
In het volgende voorbeeld ziet u hoe u rollen toewijst binnen het bereik van de resourcegroep, omdat veel apps al hun gerelateerde Azure-resources beheren met één resourcegroep.
Navigeer naar de pagina Overzicht van de resourcegroep die de app bevat met de door de gebruiker toegewezen beheerde identiteit.
Selecteer Toegangsbeheer (IAM) in het linkernavigatievenster.
Selecteer op de pagina Toegangsbeheer (IAM)de optie + Toevoegen in het bovenste menu en kies Roltoewijzing toevoegen om naar de pagina Roltoewijzing toevoegen te gaan.
Op de pagina Roltoewijzing toevoegen ziet u een werkstroom met tabbladen met meerdere stappen om rollen toe te wijzen aan identiteiten. Gebruik op het tabblad Eerste rol het zoekvak bovenaan om de rol te vinden die u aan de identiteit wilt toewijzen.
Selecteer de rol in de resultaten en kies vervolgens Volgende om naar het tabblad Leden te gaan.
Selecteer Beheerde identiteit voor de optie Toegang toewijzen aan.
Voor de optie Leden kiest u + Leden selecteren om het deelvenster Beheerde identiteiten selecteren te openen.
Gebruik in het deelvenster Beheerde identiteiten selecteren de vervolgkeuzelijsten Abonnement en Beheerde identiteit om de zoekresultaten voor uw identiteiten te filteren. Gebruik het zoekvak Selecteren om de door de gebruiker toegewezen beheerde identiteit te zoeken die u hebt ingeschakeld voor de Azure-resource die als host fungeert voor uw app.
Selecteer de identiteit en kies Selecteren onderaan het deelvenster om door te gaan.
Selecteer Beoordelen en toewijzen onderaan de pagina.
Selecteer Beoordelen en toewijzen op het laatste tabblad Beoordelen + toewijzen om de werkstroom te voltooien.
Verifiëren bij Azure-services vanuit uw app
De Azure Identity-bibliotheek biedt verschillende referenties: implementaties die zijn aangepast aan de ondersteuning van TokenCredential verschillende scenario's en Microsoft Entra-verificatiestromen. Omdat beheerde identiteit niet beschikbaar is wanneer deze lokaal wordt uitgevoerd, laten de stappen zien welke referenties moeten worden gebruikt in welk scenario:
-
Lokale ontwikkelomgeving: gebruik tijdens lokale ontwikkeling alleen een klasse met de naam DefaultAzureCredential voor een vooraf geconfigureerde, vooraf geconfigureerde keten van referenties.
DefaultAzureCredentialdetecteert gebruikersreferenties vanuit uw lokale hulpprogramma's of IDE, zoals de Azure CLI of Visual Studio Code. Het biedt ook flexibiliteit en gemak voor nieuwe pogingen, wachttijden voor antwoorden en ondersteuning voor meerdere verificatieopties. Ga naar het artikel Verifiëren bij Azure-services tijdens lokale ontwikkeling voor meer informatie. -
Door Azure gehoste apps: wanneer uw app wordt uitgevoerd in Azure, kunt
ManagedIdentityCredentialu de beheerde identiteit die is geconfigureerd voor uw app veilig detecteren. Als u dit exacte type referentie opgeeft, voorkomt u dat andere beschikbare referenties onverwacht worden opgehaald.
De code implementeren
Voeg in een JavaScript-project het @azure/identiteitspakket toe. Navigeer in een terminal van uw keuze naar de projectmap van de toepassing en voer de volgende opdrachten uit:
npm install @azure/identity
Azure-services worden geopend met behulp van gespecialiseerde clientklassen uit de verschillende Azure SDK-clientbibliotheken. Voer index.jsin de volgende stappen de volgende stappen uit om verificatie op basis van tokens te configureren:
- Importeer het
@azure/identitypakket. - Geef een geschikt
TokenCredentialexemplaar door aan de client:- Gebruik
DefaultAzureCredentialdeze functie wanneer uw app lokaal wordt uitgevoerd. - Gebruik
ManagedIdentityCredentialdeze functie wanneer uw app wordt uitgevoerd in Azure en configureer de client-id, resource-id of object-id.
- Gebruik
De client-id wordt gebruikt om een beheerde identiteit te identificeren bij het configureren van toepassingen of services die moeten worden geverifieerd met die identiteit.
Haal de client-id op die is toegewezen aan een door de gebruiker toegewezen beheerde identiteit met behulp van de volgende opdracht:
az identity show \ --resource-group <resource-group-name> \ --name <identity-name> \ --query 'clientId'Configureren
ManagedIdentityCredentialmet de client-id:import { BlobServiceClient } from '@azure/storage-blob'; import { ManagedIdentityCredential, DefaultAzureCredential } from '@azure/identity'; console.log(process.env); function createBlobServiceClient() { const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME; if (!accountName) throw Error('Azure Storage accountName not found'); const url = `https://${accountName}.blob.core.windows.net`; if (process.env.NODE_ENV === "production") { const clientId = process.env.AZURE_CLIENT_ID; if (!clientId) throw Error('AZURE_CLIENT_ID not found for Managed Identity'); return new BlobServiceClient(url, new ManagedIdentityCredential(clientId)); } else { return new BlobServiceClient(url, new DefaultAzureCredential()); } } async function main() { try { const blobServiceClient = createBlobServiceClient(); const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME); // do something with client const properties = await containerClient.getProperties(); console.log(properties); } catch (err) { console.error("Error retrieving container properties:", err.message); throw err; } } main().catch((err) => { console.error("Error running sample:", err.message); process.exit(1); });
De code implementeren
Voeg in een TypeScript-project het @azure/identiteitspakket toe. Navigeer in een terminal van uw keuze naar de projectmap van de toepassing en voer de volgende opdrachten uit:
npm install typescript @azure/identity @types/node
Azure-services worden geopend met behulp van gespecialiseerde clientklassen uit de verschillende Azure SDK-clientbibliotheken. Voer index.jsin de volgende stappen de volgende stappen uit om verificatie op basis van tokens te configureren:
- Importeer het
@azure/identitypakket. - Geef een geschikt
TokenCredentialexemplaar door aan de client:- Gebruiken
DefaultAzureCredentialwanneer uw app lokaal wordt uitgevoerd - Gebruik
ManagedIdentityCredentialdeze functie wanneer uw app wordt uitgevoerd in Azure en configureer de client-id, resource-id of object-id.
- Gebruiken
De client-id wordt gebruikt om een beheerde identiteit te identificeren bij het configureren van toepassingen of services die moeten worden geverifieerd met die identiteit.
Haal de client-id op die is toegewezen aan een door de gebruiker toegewezen beheerde identiteit met behulp van de volgende opdracht:
az identity show \ --resource-group <resource-group-name> \ --name <identity-name> \ --query 'clientId'Configureren
ManagedIdentityCredentialmet de client-id:import { BlobServiceClient } from '@azure/storage-blob'; import { ManagedIdentityCredential, DefaultAzureCredential } from '@azure/identity'; function createBlobServiceClient(): BlobServiceClient { const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME; if (!accountName) throw Error('Azure Storage accountName not found'); const url = `https://${accountName}.blob.core.windows.net`; if (process.env.NODE_ENV === "production") { const clientId = process.env.AZURE_CLIENT_ID; if (!clientId) throw Error('AZURE_CLIENT_ID not found for Managed Identity'); return new BlobServiceClient(url, new ManagedIdentityCredential(clientId)); } else { return new BlobServiceClient(url, new DefaultAzureCredential()); } } async function main(): Promise<void> { try { const blobServiceClient = createBlobServiceClient(); const containerClient = blobServiceClient.getContainerClient(process.env.AZURE_STORAGE_CONTAINER_NAME!); const properties = await containerClient.getProperties(); console.log(properties); } catch (err: any) { console.error("Error retrieving container properties:", err.message); throw err; } } main().catch((err: Error) => { console.error("Error running sample:", err.message); process.exit(1); });
De voorgaande code gedraagt zich anders, afhankelijk van de omgeving waarin deze wordt uitgevoerd:
- Op uw lokale ontwikkelwerkstation
DefaultAzureCredentialzoekt u in de omgevingsvariabelen naar een toepassingsservice-principal of op lokaal geïnstalleerde ontwikkelhulpprogramma's, zoals Visual Studio Code, voor een set ontwikkelaarsreferenties. - Wanneer deze wordt geïmplementeerd in Azure,
ManagedIdentityCredentialdetecteert u uw configuraties voor beheerde identiteiten om automatisch te verifiëren bij andere services.