Toegang tot wachtrijen autoriseren met behulp van Microsoft Entra-id
Azure Storage biedt ondersteuning voor het gebruik van Microsoft Entra ID om aanvragen voor wachtrijgegevens 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 voor de Queue-service te autoriseren.
Autorisatie met Microsoft Entra ID biedt superieure beveiliging en gebruiksgemak ten opzichte van autorisatie van gedeelde sleutels. Microsoft raadt u aan microsoft Entra-autorisatie te gebruiken met uw wachtrijtoepassingen, indien mogelijk om toegang te garanderen met minimale vereiste bevoegdheden.
Autorisatie met Microsoft Entra ID is beschikbaar voor alle opslagaccounts voor algemeen gebruik in alle openbare regio's en nationale clouds. Alleen opslagaccounts die zijn gemaakt met het Azure Resource Manager-implementatiemodel ondersteunen Microsoft Entra-autorisatie.
Overzicht van Microsoft Entra-id voor wachtrijen
Wanneer een beveiligingsprincipaal (een gebruiker, groep of toepassing) toegang probeert te krijgen tot een wachtrijresource, moet de aanvraag worden geautoriseerd, tenzij deze een wachtrij is die beschikbaar is voor anonieme toegang. Met Microsoft Entra ID is toegang tot een resource een proces in twee stappen:
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 wachtrijgegevens.
Vervolgens wordt het token doorgegeven als onderdeel van een aanvraag voor de Queue-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:
- De Azure Identity-clientbibliotheek wordt aanbevolen voor de meeste ontwikkelscenario's.
- De Microsoft Authentication Library (MSAL) kan geschikt zijn voor bepaalde geavanceerde scenario's.
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:
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>.queue.core.windows.net |
Azure Government | https://<account-name>.queue.core.usgovcloudapi.net |
Azure China 21Vianet | https://<account-name>.queue.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 wachtrijgegevens. U kunt ook aangepaste rollen definiëren voor toegang tot wachtrijgegevens. Zie Een Azure-rol toewijzen voor toegang tot wachtrijen voor meer informatie over het toewijzen van Azure-rollen voor toegang tot wachtrijgegevens.
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 welke machtigingen de principal heeft. Zie Een Azure-rol toewijzen voor toegang tot wachtrijen voor meer informatie over het toewijzen van Azure-rollen voor toegang tot wachtrijgegevens
In sommige gevallen moet u mogelijk verfijnde toegang tot wachtrijresources 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 wachtrijen autoriseren met behulp van voorwaarden voor Azure-roltoewijzingen voor meer informatie over het configureren van voorwaarden voor Azure-opslagresources met ABAC. Zie Acties en kenmerken voor voorwaarden voor Azure-roltoewijzingen voor Azure-wachtrijen voor meer informatie over ondersteunde voorwaarden voor wachtrijgegevensbewerkingen.
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 Queue Storage. U kunt deze toewijzen op het niveau van uw abonnement, resourcegroep, opslagaccount of wachtrij.
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 de toegang tot Azure-wachtrijbronnen op de volgende niveaus beperken, te beginnen met het smalste bereik:
- Een afzonderlijke wachtrij. Bij dit bereik is een roltoewijzing van toepassing op berichten in de wachtrij en op wachtrijeigenschappen en metagegevens.
- Het opslagaccount. In dit bereik is een roltoewijzing van toepassing op alle wachtrijen en hun berichten.
- De resourcegroep. In dit bereik is een roltoewijzing van toepassing op alle wachtrijen in alle opslagaccounts in de resourcegroep.
- Het abonnement. In dit bereik is een roltoewijzing van toepassing op alle wachtrijen in alle opslagaccounts in alle resourcegroepen in het abonnement.
- Een beheergroep. In dit bereik is een roltoewijzing van toepassing op alle wachtrijen 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 wachtrijen
Azure RBAC biedt verschillende ingebouwde rollen voor het autoriseren van toegang tot wachtrijgegevens met behulp van Microsoft Entra ID en OAuth. Enkele voorbeelden van rollen die machtigingen bieden voor gegevensbronnen in Azure Storage zijn:
- Bijdrager voor opslagwachtrijgegevens: Gebruik om lees-/schrijf-/verwijderrechten toe te kennen voor Azure-wachtrijen.
- Lezer voor opslagwachtrijgegevens: Gebruik om alleen-lezenrechten toe te kennen voor Azure-wachtrijen.
- Berichtenprocessor voor opslagwachtrijgegevens: Gebruik om machtigingen voor weergeven, ophalen en verwijderen van berichten in Azure Storage-wachtrijen te verlenen.
- Berichtenverzender voor opslagwachtrijgegevens: Gebruik om machtigingen voor toevoegen van berichten in Azure Storage-wachtrijen te verlenen.
Zie Een Azure-rol toewijzen voor toegang tot wachtrijgegevens 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, staan een beveiligingsprincipaal toegang tot wachtrijgegevens toe. Ingebouwde rollen zoals Eigenaar, Inzender en Inzender voor opslagaccounts staan een beveiligingsprincipaal toe om een opslagaccount te beheren, maar bieden geen toegang tot de wachtrijgegevens 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 wachtrijgegevens 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 het aanroepen van specifieke wachtrijservicebewerkingen voor meer informatie over de machtigingen die zijn vereist voor het aanroepen van specifieke wachtrijservicebewerkingen.
Toegang tot gegevens met een Microsoft Entra-account
Toegang tot wachtrijgegevens via Azure Portal, PowerShell of Azure CLI kan worden geautoriseerd met behulp van het Microsoft Entra-account van de gebruiker of met behulp van de accounttoegangssleutels (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 wachtrijgegevens in een Azure-opslagaccount. Welk autorisatieschema de Azure-portal gebruikt, is afhankelijk van de Azure-rollen die aan u zijn toegewezen.
Wanneer u toegang probeert te krijgen tot wachtrijgegevens, 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 wachtrijgegevens 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 wachtrijgegevens vanuit Azure Portal met uw Microsoft Entra-account, hebt u machtigingen nodig voor toegang tot wachtrijgegevens en hebt u ook machtigingen nodig om door de resources van het opslagaccount in azure Portal te navigeren. De ingebouwde rollen van Azure Storage verlenen toegang tot wachtrijbronnen, maar verlenen geen machtigingen voor opslagaccountbronnen. 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 wachtrijgegevens voor meer informatie over het toewijzen van machtigingen aan gebruikers voor gegevenstoegang in Azure Portal met een Microsoft Entra-account.
De Azure-portal geeft aan welk autorisatieschema wordt gebruikt wanneer u naar een wachtrij navigeert. Zie Kiezen hoe u toegang tot wachtrijgegevens in Azure Portal autoriseert voor meer informatie over gegevenstoegang in de 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:
- Kiezen hoe u toegang tot wachtrijgegevens autoriseert met Azure CLI
- PowerShell-opdrachten uitvoeren met Microsoft Entra-referenties voor toegang tot wachtrijgegevens