Een geschikte methode selecteren en configureren voor toegang tot Azure Queues
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 Microsoft Entra ID om een OAuth 2.0-token terug te geven. 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.
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.
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 zijn voor één opslagaccount of kan deze van toepassing zijn op elk 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 Overheid | 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.
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.
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.
Wanneer u een Azure Storage-account maakt, worden er niet automatisch machtigingen toegewezen voor toegang tot gegevens via Microsoft Entra-id. U moet uzelf 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. Best practices bepalen dat het altijd het beste is om alleen het smalst mogelijke bereik te verlenen. 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 hulpmiddelengroep. 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. Op dit niveau is een roltoewijzing van toepassing op alle wachtrijen in alle opslagaccounts in alle resourcegroepen in alle abonnementen binnen de beheergroep.
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:
- Inzender voor opslagwachtrijgegevens: gebruik deze optie om lees-/schrijf-/verwijdermachtigingen te verlenen aan Azure-wachtrijen.
- Opslagwachtrijgegevenslezer: gebruik deze functie om alleen-lezenmachtigingen te verlenen aan Azure-wachtrijen.
- Opslagwachtrijgegevensverwerker: gebruik deze functie om machtigingen voor berichten in Azure Storage-wachtrijen te bekijken, op te halen en te verwijderen.
- Afzender van opslagwachtrijgegevensbericht: gebruik deze functie om machtigingen toe te kennen aan berichten in Azure Storage-wachtrijen.
Alleen rollen die expliciet zijn gedefinieerd voor gegevenstoegang, staan een beveiligingsprincipaal toegang tot wachtrijgegevens toe. Ingebouwde rollen, zoals Eigenaar, Medewerkeren Medewerker voor opslagaccounts, geven een beveiligingsprincipaal toestemming 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/actionbevat, kan een gebruiker aan wie die rol is toegewezen, toegang krijgen tot gegevens in het opslagaccount via autorisatie voor gedeelde sleutels met de toegangssleutels voor het account.
Het kan tot 30 minuten duren voordat roltoewijzingen in Azure zijn doorgegeven.
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).
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 verbindingsreeksen 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.
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 vereist toegang tot de portal ook de toewijzing van een Azure Resource Manager-rol, zoals de rol Lezer, die is afgestemd op het niveau van het opslagaccount of hoger. De rol Lezer verleent de meest beperkte machtigingen, maar een andere Azure Resource Manager-rol die toegang verleent tot opslagaccountbeheerresources, is ook acceptabel.
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 inloggegevens. 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