Toegang tot blobs autoriseren met behulp van Microsoft Entra-id

Azure Storage ondersteunt het gebruik van Microsoft Entra ID om aanvragen voor blobgegevens te autoriseren. Met Microsoft Entra-id kunt u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om machtigingen te verlenen aan een beveiligingsprincipaal. Dit kan een gebruikers-, groep- of toepassingsservice-principal zijn. De beveiligingsprincipaal wordt geverifieerd door de Microsoft Entra-id om een OAuth 2.0-token te retourneren. Het token kan vervolgens worden gebruikt om een aanvraag te autoriseren voor de Blob-service.

Autorisatie met Microsoft Entra ID biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde sleutels. Microsoft raadt u aan microsoft Entra-autorisatie met uw blobtoepassingen te gebruiken, indien mogelijk om toegang te garanderen met minimale vereiste bevoegdheden.

Autorisatie met Microsoft Entra ID is beschikbaar voor alle accounts voor algemeen gebruik en Blob Storage in alle openbare regio's en nationale clouds. Alleen opslagaccounts die zijn gemaakt met het Azure Resource Manager-implementatiemodel ondersteunen Microsoft Entra-autorisatie.

Blob Storage biedt ook ondersteuning voor het maken van sas-handtekeningen (Shared Access Signatures) die zijn ondertekend met Microsoft Entra-referenties. Zie Beperkte toegang verlenen tot gegevens met handtekeningen voor gedeelde toegang voor meer informatie.

Overzicht van Microsoft Entra-id voor blobs

Wanneer een beveiligingsprincipaal (een gebruiker, groep of toepassing) toegang probeert te krijgen tot een blobresource, moet de aanvraag worden geautoriseerd, tenzij deze een blob is die beschikbaar is voor anonieme toegang. Met Microsoft Entra ID is toegang tot een resource een proces in twee stappen:

  1. Eerst wordt de identiteit van de beveiligingsprincipaal geverifieerd en wordt een OAuth 2.0-token geretourneerd.

    Voor de verificatiestap is vereist dat een toepassing tijdens runtime een OAuth 2.0-toegangstoken aanvraagt. Als een toepassing wordt uitgevoerd vanuit een Azure-entiteit zoals een Azure-VM, een virtuele-machineschaalset of een Azure Functions-app, kan deze een beheerde identiteit gebruiken om toegang te krijgen tot blobgegevens.

  2. Vervolgens wordt het token doorgegeven als onderdeel van een aanvraag voor de Blob-service en gebruikt door de service om toegang tot de opgegeven resource te autoriseren.

    Voor de autorisatiestap moet een of meer Azure RBAC-rollen worden toegewezen aan de beveiligingsprincipaal die de aanvraag indient. Zie Azure-rollen toewijzen voor toegangsrechten voor meer informatie.

Een Microsoft Entra-account gebruiken met portal, PowerShell of Azure CLI

Zie Gegevenstoegang vanuit Azure Portal voor meer informatie over het openen van gegevens in Azure Portal met een Microsoft Entra-account. Zie Gegevenstoegang vanuit PowerShell of Azure CLI voor meer informatie over het aanroepen van Azure PowerShell- of Azure CLI-opdrachten met een Microsoft Entra-account.

Microsoft Entra-id gebruiken om toegang in toepassingscode te autoriseren

Als u toegang tot Azure Storage met Microsoft Entra ID wilt autoriseren, kunt u een van de volgende clientbibliotheken gebruiken om een OAuth 2.0-token te verkrijgen:

Azure Identity-clientbibliotheek

De Azure Identity-clientbibliotheek vereenvoudigt het proces van het ophalen van een OAuth 2.0-toegangstoken voor autorisatie met Microsoft Entra-id via de Azure SDK. De nieuwste versies van de Azure Storage-clientbibliotheken voor .NET, Java, Python, JavaScript en Go kunnen worden geïntegreerd met de Azure Identity-bibliotheken voor elk van deze talen om een eenvoudig en veilig middel te bieden voor het verkrijgen van een toegangstoken voor autorisatie van Azure Storage-aanvragen.

Een voordeel van de Azure Identity-clientbibliotheek is dat u dezelfde code kunt gebruiken om het toegangstoken te verkrijgen, ongeacht of uw toepassing wordt uitgevoerd in de ontwikkelomgeving of in Azure. De Azure Identity-clientbibliotheek retourneert een toegangstoken voor een beveiligingsprincipaal. Wanneer uw code wordt uitgevoerd in Azure, kan de beveiligingsprincipaal een beheerde identiteit zijn voor Azure-resources, een service-principal of een gebruiker of groep. In de ontwikkelomgeving biedt de clientbibliotheek een toegangstoken voor een gebruiker of een service-principal voor testdoeleinden.

Het toegangstoken dat wordt geretourneerd door de Azure Identity-clientbibliotheek, wordt ingekapseld in een tokenreferentie. Vervolgens kunt u de tokenreferentie gebruiken om een serviceclientobject op te halen voor gebruik bij het uitvoeren van geautoriseerde bewerkingen voor Azure Storage. Een eenvoudige manier om het toegangstoken en de tokenreferentie op te halen, is door de DefaultAzureCredential-klasse te gebruiken die wordt geleverd door de Azure Identity-clientbibliotheek. DefaultAzureCredential probeert de tokenreferentie op te halen door opeenvolgend verschillende referentietypen te proberen. DefaultAzureCredential werkt in zowel de ontwikkelomgeving als in Azure.

De volgende tabel verwijst naar aanvullende informatie voor het autoriseren van toegang tot gegevens in verschillende scenario's:

Language .NET Java JavaScript Python Go
Overzicht van verificatie met Microsoft Entra-id .NET-toepassingen verifiëren met Azure-services Azure-verificatie met Java en Azure Identity JavaScript-apps verifiëren bij Azure met behulp van de Azure SDK Python-apps verifiëren bij Azure met behulp van de Azure SDK
Verificatie met service-principals voor ontwikkelaars .NET-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van service-principals Azure-verificatie met service-principal JS-apps met service-principal naar Azure-services authent Python-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van service-principals Azure SDK voor Go-verificatie met een service-principal
Verificatie met ontwikkelaars- of gebruikersaccounts .NET-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van ontwikkelaarsaccounts Azure-verificatie met gebruikersreferenties JS-apps verifiëren bij Azure-services met dev-accounts Python-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van ontwikkelaarsaccounts Azure-verificatie met de Azure SDK voor Go
Verificatie vanuit door Azure gehoste apps Door Azure gehoste apps verifiëren bij Azure-resources met de Azure SDK voor .NET Door Azure gehoste Java-toepassingen verifiëren Door Azure gehoste JavaScript-apps verifiëren bij Azure-resources met de Azure SDK voor JavaScript Door Azure gehoste apps verifiëren bij Azure-resources met de Azure SDK voor Python Verificatie met de Azure SDK voor Go met behulp van een beheerde identiteit
Verificatie vanuit on-premises apps Verifiëren bij Azure-resources vanuit .NET-apps die on-premises worden gehost On-premises JavaScript-apps verifiëren bij Azure-resources Verifiëren bij Azure-resources vanuit Python-apps die on-premises worden gehost
Overzicht van identiteitsclientbibliotheek Azure Identity-clientbibliotheek voor .NET Azure Identity-clientbibliotheek voor Java Azure Identity-clientbibliotheek voor JavaScript Azure Identity-clientbibliotheek voor Python Azure Identity-clientbibliotheek voor Go

Microsoft Authentication Library (MSAL)

Hoewel Microsoft het gebruik van de Azure Identity-clientbibliotheek indien mogelijk aanbeveelt, is de MSAL-bibliotheek mogelijk geschikt voor gebruik in bepaalde geavanceerde scenario's. Zie Meer informatie over MSAL voor meer informatie.

Wanneer u MSAL gebruikt om een OAuth-token te verkrijgen voor toegang tot Azure Storage, moet u een Microsoft Entra-resource-id opgeven. De Microsoft Entra-resource-id geeft de doelgroep aan waarvoor een token dat wordt uitgegeven, kan worden gebruikt om toegang te verlenen tot een Azure-resource. In het geval van Azure Storage kan de resource-id specifiek voor één opslagaccount zijn of van toepassing zijn op een willekeurig opslagaccount.

Wanneer u een resource-id opgeeft die specifiek is voor één opslagaccount en -service, wordt de resource-id gebruikt om een token te verkrijgen voor het autoriseren van aanvragen voor het opgegeven account en de opgegeven service. De volgende tabel bevat de waarde die moet worden gebruikt voor de resource-id, op basis van de cloud waarmee u werkt. Vervang <account-name> door de naam van uw opslagaccount.

Cloud Resource-id
Azure Global https://<account-name>.blob.core.windows.net
Azure Government https://<account-name>.blob.core.usgovcloudapi.net
Azure China 21Vianet https://<account-name>.blob.core.chinacloudapi.cn

U kunt ook een resource-id opgeven die van toepassing is op elk opslagaccount, zoals wordt weergegeven in de volgende tabel. Deze resource-id is hetzelfde voor alle openbare en onafhankelijke clouds en wordt gebruikt om een token te verkrijgen voor het autoriseren van aanvragen voor elk opslagaccount.

Cloud Resource-id
Azure Global
Azure Government
Azure China 21Vianet
https://storage.azure.com/

Azure-rollen toewijzen voor toegangsrechten

Microsoft Entra autoriseert toegangsrechten voor beveiligde resources via Azure RBAC. Azure Storage definieert een set ingebouwde RBAC-rollen die algemene sets machtigingen omvatten die worden gebruikt voor toegang tot blobgegevens. U kunt ook aangepaste rollen definiëren voor toegang tot blobgegevens. Zie Een Azure-rol toewijzen voor toegang tot blobs voor meer informatie over het toewijzen van Azure-rollen voor toegang tot blobgegevens.

Een Microsoft Entra-beveiligingsprincipaal kan een gebruiker, een groep, een toepassingsservice-principal of een beheerde identiteit voor Azure-resources zijn. De RBAC-rollen die zijn toegewezen aan een beveiligingsprincipaal, bepalen de machtigingen die de principal heeft voor de opgegeven resource. Zie Een Azure-rol toewijzen voor toegang tot blobs voor meer informatie over het toewijzen van Azure-rollen voor toegang tot blobgegevens

In sommige gevallen moet u mogelijk verfijnde toegang tot blobresources inschakelen of machtigingen vereenvoudigen wanneer u een groot aantal roltoewijzingen voor een opslagresource hebt. U kunt op kenmerken gebaseerd toegangsbeheer van Azure (Azure ABAC) gebruiken om voorwaarden voor roltoewijzingen te configureren. U kunt voorwaarden gebruiken met een aangepaste rol of ingebouwde rollen selecteren. Zie Toegang tot blobs autoriseren met behulp van voorwaarden voor Azure-roltoewijzing (preview) voor meer informatie over het configureren van voorwaarden voor Azure-opslagresources met ABAC. Zie Acties en kenmerken voor voorwaarden voor Azure-roltoewijzing in Azure Storage (preview) voor meer informatie over ondersteunde voorwaarden voor blobgegevensbewerkingen.

Notitie

Wanneer u een Azure Storage-account maakt, worden er niet automatisch machtigingen toegewezen voor toegang tot gegevens via Microsoft Entra-id. U moet expliciet een Azure-rol toewijzen voor toegang tot Blob Storage. U kunt deze toewijzen op het niveau van uw abonnement, resourcegroep, opslagaccount of container.

Resourcebereik

Voordat u een Azure RBAC-rol toewijst aan een beveiligingsprincipaal, bepaalt u het toegangsbereik dat de beveiligingsprincipaal moet hebben. Uit best practices blijkt dat het het beste is om het nauwst mogelijke bereik toe te wijzen. Azure RBAC-rollen die zijn gedefinieerd in een breder bereik, worden overgenomen door de onderliggende resources.

U kunt toegang tot Azure Blob-resources op de volgende niveaus instellen, te beginnen met het smalste bereik:

  • Een afzonderlijke container. In dit bereik is een roltoewijzing van toepassing op alle blobs in de container en op de containereigenschappen en metagegevens.
  • Het opslagaccount. In dit bereik is een roltoewijzing van toepassing op alle containers en de bijbehorende blobs.
  • De resourcegroep. In dit bereik is een roltoewijzing van toepassing op alle containers in alle opslagaccounts in de resourcegroep.
  • Het abonnement. In dit bereik is een roltoewijzing van toepassing op alle containers in alle opslagaccounts in alle resourcegroepen in het abonnement.
  • Een beheergroep. In dit bereik is een roltoewijzing van toepassing op alle containers in alle opslagaccounts in alle resourcegroepen in alle abonnementen in de beheergroep.

Zie Bereik voor Azure RBAC-roltoewijzingen begrijpen voor meer informatie over het bereik voor Azure RBAC.

Ingebouwde Azure-rollen voor blobs

Azure RBAC biedt verschillende ingebouwde rollen voor het autoriseren van toegang tot blobgegevens met behulp van Microsoft Entra ID en OAuth. Enkele voorbeelden van rollen die machtigingen bieden voor gegevensbronnen in Azure Storage zijn:

Zie Een Azure-rol toewijzen voor toegang tot blobgegevens voor meer informatie over het toewijzen van een ingebouwde Azure-rol aan een beveiligingsprincipaal. Zie Lijst met Azure-roldefinities voor meer informatie over het weergeven van Azure RBAC-rollen en hun machtigingen.

Zie Roldefinities begrijpen voor meer informatie over hoe ingebouwde rollen worden gedefinieerd voor Azure Storage. Zie Aangepaste Azure-rollen voor informatie over het maken van aangepaste Azure-rollen.

Alleen rollen die expliciet zijn gedefinieerd voor gegevenstoegang geven een beveiligingsprincipaal toegang tot blobgegevens. Ingebouwde rollen, zoals Eigenaar, Inzender en Inzender voor opslagaccounts, staan een beveiligingsprincipaal toe om een opslagaccount te beheren, maar bieden geen toegang tot de blobgegevens binnen dat account via Microsoft Entra-id. Als een rol echter Microsoft.Storage/storageAccounts/listKeys/action bevat, kan een gebruiker aan wie die rol is toegewezen toegang krijgen tot gegevens in het opslagaccount via autorisatie met gedeelde sleutels met de toegangssleutels van het account. Zie Kiezen hoe u toegang tot blobgegevens in Azure Portal autoriseert voor meer informatie.

Voor gedetailleerde informatie over ingebouwde rollen van Azure voor Azure Storage voor zowel de gegevensservices als de beheerservice raadpleegt u de sectie Storage in Ingebouwde Azure-rollen voor Azure RBAC. Zie daarnaast Azure-rollen, Microsoft Entra-rollen en klassieke abonnementsbeheerdersrollen voor informatie over de verschillende typen rollen die machtigingen bieden in Azure.

Belangrijk

Het kan tot 30 minuten duren voordat Azure-roltoewijzingen zijn doorgegeven.

Toegangsmachtigingen voor gegevensbewerkingen

Zie Machtigingen voor het aanroepen van gegevensbewerkingen voor meer informatie over de machtigingen die zijn vereist voor het aanroepen van specifieke Blob-servicebewerkingen.

Toegang tot gegevens met een Microsoft Entra-account

Toegang tot blobgegevens via Azure Portal, PowerShell of Azure CLI kan worden geautoriseerd met het Microsoft Entra-account van de gebruiker of met behulp van de toegangssleutels voor het account (autorisatie voor gedeelde sleutels).

Let op

Autorisatie met gedeelde sleutel wordt niet aanbevolen omdat deze mogelijk minder veilig is. Schakel voor optimale beveiliging autorisatie uit via een gedeelde sleutel voor uw opslagaccount, zoals beschreven in Autorisatie van gedeelde sleutels voorkomen voor een Azure Storage-account.

Het gebruik van toegangssleutels en verbindingsreeks s moet worden beperkt tot het eerste bewijs van concept-apps of prototypen voor ontwikkeling die geen toegang hebben tot productie- of gevoelige gegevens. Anders moeten de verificatieklassen op basis van tokens die beschikbaar zijn in de Azure SDK altijd de voorkeur krijgen bij het verifiëren bij Azure-resources.

Microsoft raadt aan dat clients Microsoft Entra ID of sas (Shared Access Signature) gebruiken om toegang tot gegevens in Azure Storage te autoriseren. Zie Bewerkingen autoriseren voor gegevenstoegang voor meer informatie.

Gegevenstoegang vanuit Azure Portal

Azure Portal kan uw Microsoft Entra-account of de toegangssleutels voor het account gebruiken om toegang te krijgen tot blobgegevens in een Azure-opslagaccount. Welk autorisatieschema de Azure-portal gebruikt, is afhankelijk van de Azure-rollen die aan u zijn toegewezen.

Wanneer u probeert toegang te krijgen tot blobgegevens, controleert Azure Portal eerst of u een Azure-rol hebt toegewezen met Microsoft.Storage/storageAccounts/listkeys/action. Als u met deze actie een rol hebt toegewezen, gebruikt Azure Portal de accountsleutel voor toegang tot blobgegevens via autorisatie voor gedeelde sleutels. Als u met deze actie geen rol hebt toegewezen, probeert Azure Portal toegang te krijgen tot gegevens met behulp van uw Microsoft Entra-account.

Als u toegang wilt krijgen tot blobgegevens vanuit Azure Portal met behulp van uw Microsoft Entra-account, hebt u machtigingen nodig voor toegang tot blobgegevens en hebt u ook machtigingen nodig om door de resources van het opslagaccount in Azure Portal te navigeren. De ingebouwde rollen die worden geboden in Azure Storage, verlenen toegang tot blob-resources, maar ze verlenen geen toegangsmachtigingen voor opslagaccounts. Daarom moet voor toegang tot de portal ook een Azure Resource Manager-rol zijn toegewezen, zoals de rol Lezer, toegepast op opslagaccountniveau of hoger. De rol Lezer verleent de meest beperkte machtigingen, maar een andere Azure Resource Manager-rol die toegang verleent tot resources voor het beheren van opslagaccounts is ook acceptabel. Zie Een Azure-rol toewijzen voor toegang tot blob-gegevens voor meer informatie over het toewijzen van machtigingen aan gebruikers zodat deze met een Microsoft Entra-account toegang hebben tot gegevens in Azure Portal.

Azure Portal laat zien welk autorisatieschema wordt gebruikt wanneer u naar een container navigeert. Zie Kiezen hoe toegang tot blob-gegevens in Azure Portal moet worden geautoriseerd voor meer informatie over gegevenstoegang in Azure Portal.

Gegevenstoegang vanuit PowerShell of Azure CLI

Azure CLI en PowerShell bieden ondersteuning voor aanmelden met Microsoft Entra-referenties. Nadat u zich hebt aangemeld, wordt uw sessie uitgevoerd onder deze referenties. Zie een van de volgende artikelen voor meer informatie:

Functieondersteuning

Ondersteuning voor deze functie kan worden beïnvloed door het inschakelen van Data Lake Storage Gen2, het NFS-protocol (Network File System) 3.0 of het SSH File Transfer Protocol (SFTP). Als u een van deze mogelijkheden hebt ingeschakeld, raadpleegt u de ondersteuning voor Blob Storage-functies in Azure Storage-accounts om ondersteuning voor deze functie te beoordelen.

Het autoriseren van blobgegevensbewerkingen met Microsoft Entra ID wordt alleen ondersteund voor REST API-versies 2017-11-09 en hoger. Zie Versiebeheer voor de Azure Storage-services voor meer informatie.

Volgende stappen