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.
Azure Service Bus ondersteunt het gebruik van Microsoft Entra ID voor het autoriseren van aanvragen voor Service Bus-entiteiten (wachtrijen, onderwerpen, abonnementen of filters). Met Microsoft Entra ID kunt u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om machtigingen te verlenen aan een beveiligingsprincipaal. De beveiligingsprincipaal kan een gebruiker, groep, toepassingsservice-principal of beheerde identiteit voor Azure-resources zijn.
Een belangrijk voordeel van het gebruik van Microsoft Entra ID met Azure Service Bus is dat u uw referenties niet meer hoeft op te slaan in de code. In plaats daarvan kunt u een OAuth 2.0-toegangstoken aanvragen via het Microsoft Identity Platform. Als de verificatie slaagt, retourneert Microsoft Entra-id een toegangstoken naar de toepassing. De toepassing kan vervolgens het toegangstoken gebruiken om aanvragen voor Service Bus-resources te autoriseren.
U kunt lokale of SAS-sleutelverificatie (Shared Access Signature) uitschakelen voor een Service Bus-naamruimte en alleen Microsoft Entra-verificatie toestaan. Zie Lokale verificatie uitschakelen voor stapsgewijze instructies.
Overzicht
Wanneer een beveiligingsprincipaal (een gebruiker, groep of toepassing) toegang probeert te krijgen tot een Service Bus-entiteit, moet de aanvraag worden geautoriseerd. Met Microsoft Entra ID is toegang tot een resource een proces in twee stappen:
- De identiteit van de beveiligingsprincipaal wordt geverifieerd en er wordt een OAuth 2.0-token geretourneerd. De resourcenaam voor het aanvragen van een token is
https://servicebus.azure.net. - Het token wordt doorgegeven als onderdeel van een aanvraag aan de Service Bus-service om toegang tot de opgegeven resource te autoriseren.
Voor de verificatiestap is vereist dat een toepassingsaanvraag tijdens runtime een OAuth 2.0-toegangstoken bevat. Als een toepassing wordt uitgevoerd binnen een Azure-entiteit, zoals een virtuele Azure-machine, een virtuele-machineschaalset of een functie-app, kan deze een beheerde identiteit gebruiken om toegang te krijgen tot de resources. Zie Beheerde identiteiten gebruiken met Azure Service Bus voor meer informatie over het verifiëren van aanvragen die een beheerde identiteit aan de Service Bus-service doet.
Voor de autorisatiestap is de toewijzing van een of meer Azure-rollen aan de beveiligingsprincipaal vereist. Service Bus biedt Azure-rollen die sets machtigingen voor Service Bus-resources omvatten. De rollen die zijn toegewezen aan een beveiligingsprincipaal, bepalen de machtigingen die de principal heeft voor Service Bus-resources. Zie ingebouwde Azure-rollen voor Azure Service Bus voor meer informatie over het toewijzen van Azure-rollen aan Service Bus.
Systeemeigen toepassingen en webtoepassingen die aanvragen indienen bij Service Bus, kunnen ook autoriseren met Microsoft Entra-id. In dit artikel leest u hoe u een toegangstoken aanvraagt en gebruikt om aanvragen voor Service Bus-resources te autoriseren.
Ingebouwde Azure-rollen voor Azure Service Bus
Microsoft Entra autoriseert toegangsrechten voor beveiligde resources via Azure RBAC. Azure Service Bus definieert een set ingebouwde Azure-rollen die algemene sets machtigingen omvatten die worden gebruikt voor toegang tot Service Bus-entiteiten. U kunt ook aangepaste rollen definiëren voor toegang tot de gegevens.
Wanneer een Azure-rol is toegewezen aan een Microsoft Entra-beveiligingsprincipaal, verleent Azure toegang tot deze resources voor die beveiligingsprincipaal. Toegang kan worden beperkt tot het niveau van het abonnement, de resourcegroep, de Service Bus-naamruimte of de entiteit (wachtrij, onderwerp of abonnement). Een Microsoft Entra-beveiligingsprincipaal kan een gebruiker, een groep, een toepassingsservice-principal of een beheerde identiteit voor Azure-resources zijn.
Voor Azure Service Bus helpt het Azure RBAC-model het beheer van naamruimten en alle gerelateerde resources te beveiligen via Azure Portal en de Azure Resource Management-API. Azure biedt de volgende ingebouwde rollen voor het autoriseren van toegang tot een Service Bus-naamruimte:
- Azure Service Bus-gegevenseigenaar: gebruik deze rol om volledige toegang te verlenen tot de Service Bus-resources.
- Azure Service Bus-gegevenszender: gebruik deze rol om het verzenden van toegang tot de Service Bus-naamruimte en de bijbehorende entiteiten te verlenen.
- Azure Service Bus-gegevensontvanger: gebruik deze rol om toegang te verlenen tot de Service Bus-naamruimte en de bijbehorende entiteiten.
Resourcebereik
Voordat u een Azure-rol toewijst een beveiligingsprincipal, moet u het toegangsbereik bepalen dat de beveiligingsprincipal moet hebben. Uit best practices blijkt dat het het beste is om het nauwst mogelijke bereik toe te wijzen.
In de volgende lijst worden de niveaus beschreven waarop u toegang tot Service Bus-resources kunt instellen, te beginnen met het smalste bereik:
Wachtrij, onderwerp of abonnement: roltoewijzing is van toepassing op de specifieke Service Bus-entiteit. Op dit moment biedt Azure Portal geen ondersteuning voor het toewijzen van gebruikers, groepen of beheerde identiteiten aan Service Bus Azure-rollen op het niveau van het onderwerpabonnement.
Service Bus-naamruimte: roltoewijzing omvat de volledige topologie van Service Bus onder de naamruimte en het wachtrij- of onderwerpabonnement dat eraan is gekoppeld.
Resourcegroep: Roltoewijzing is van toepassing op alle Service Bus-resources onder de resourcegroep.
Azure-abonnement: roltoewijzing is van toepassing op alle Service Bus-resources in alle resourcegroepen in het abonnement.
Houd er rekening mee dat het maximaal vijf minuten kan duren voordat Azure-roltoewijzingen zijn doorgegeven.
Zie Azure-roldefinities begrijpen voor meer informatie over hoe ingebouwde rollen worden gedefinieerd. Zie Aangepaste Azure-rollen voor informatie over het maken van aangepaste Azure-rollen.
Verificatie vanuit een toepassing
Een belangrijk voordeel van het gebruik van Microsoft Entra-id met Service Bus is dat uw referenties niet meer hoeven te worden opgeslagen in uw code. In plaats daarvan kunt u een OAuth 2.0-toegangstoken aanvragen via het Microsoft Identity Platform.
Microsoft Entra verifieert de beveiligingsprincipaal (een gebruiker, een groep, een service-principal of een beheerde identiteit voor Azure-resources) die de toepassing uitvoert. Als de verificatie slaagt, retourneert Microsoft Entra-id het toegangstoken naar de toepassing. De toepassing kan vervolgens het toegangstoken gebruiken om aanvragen voor Service Bus te autoriseren.
In de volgende secties ziet u hoe u uw systeemeigen toepassing of webtoepassing configureert voor verificatie met Microsoft Identity Platform 2.0. Zie Wat is het Microsoft Identity Platform? voor meer informatie over het platform.
Voor een overzicht van de OAuth 2.0-codeverleningsstroom, zie Microsoft Identity Platform en OAuth 2.0-autorisatiecodeflow.
Uw toepassing registreren bij een Microsoft Entra-tenant
De eerste stap bij het gebruik van Microsoft Entra-id voor het autoriseren van Service Bus-entiteiten is het registreren van uw clienttoepassing bij een Microsoft Entra-tenant vanuit Azure Portal. Wanneer u uw clienttoepassing registreert, geeft u informatie over de toepassing aan Active Directory op. Microsoft Entra-id biedt vervolgens een client-id (ook wel een toepassings-id genoemd) die u kunt gebruiken om uw toepassing te koppelen aan de Microsoft Entra-runtime. Zie Toepassings- en service-principalobjecten in Microsoft Entra-id voor meer informatie over de client-id.
Als u uw toepassing wilt registreren bij Microsoft Entra-id, volgt u de stappen in Een toepassing registreren in Microsoft Entra-id.
Notitie
Als u uw toepassing registreert als een systeemeigen toepassing, kunt u elke geldige URI voor de omleidings-URI opgeven. Voor systeemeigen toepassingen hoeft deze waarde geen echte URL te zijn. Voor webtoepassingen moet de omleidings-URI een geldige URI zijn, omdat hiermee de URL wordt opgegeven waarnaar tokens worden opgegeven.
Nadat u uw toepassing hebt geregistreerd, worden de id van de toepassing (client) en de id van de map (tenant) weergegeven onder Instellingen. Noteer deze waarden. U hebt ze nodig om de toepassing uit te voeren.
Een clientgeheim maken
De toepassing heeft een clientgeheim nodig om de identiteit ervan te bewijzen bij het aanvragen van een token. Voer de volgende stappen uit om het clientgeheim toe te voegen:
Ga in Azure Portal naar uw app-registratie als u zich nog niet op de pagina bevindt.
Selecteer certificaten en geheimen in het linkermenu.
Selecteer onder Clientgeheimenhet nieuwe clientgeheim om een nieuw geheim te maken.
Geef een beschrijving op voor het geheim, kies het verloopinterval en selecteer vervolgens Toevoegen.
Kopieer onmiddellijk de waarde van het nieuwe geheim naar een veilige locatie. De volledige waarde wordt slechts eenmaal weergegeven.
Machtigingen toevoegen voor de Service Bus-API
Als uw toepassing een consoletoepassing is, moet u een systeemeigen toepassing registreren en API-machtigingen toevoegen aan Microsoft.ServiceBus, die behoren tot de set van vereiste machtigingen.
Systeemeigen toepassingen hebben ook een omleidings-URI in Microsoft Entra ID nodig, die als een identificator fungeert. De URI hoeft geen netwerkbestemming te zijn. Gebruik https://servicebus.microsoft.com dit voorbeeld omdat de voorbeeldcode die URI al gebruikt.
Toewijzing van Azure-rollen via Azure Portal
Wijs een van de Service Bus-rollen toe aan de service-principal van de toepassing op het gewenste bereik (entiteit, Service Bus-naamruimte, resourcegroep of Azure-abonnement). Zie Azure-rollen toewijzen met behulp van Azure Portal voor gedetailleerde stappen.
Nadat u de rol en het bereik ervan hebt gedefinieerd, kunt u dit gedrag testen met het voorbeeld op GitHub.
Verificatie van de Service Bus-client
Nadat u uw toepassing hebt geregistreerd en deze machtigingen hebt verleend voor het verzenden/ontvangen van gegevens in Azure Service Bus, kunt u uw client verifiëren met de inloggegevens van het clientgeheim. Met deze verificatie kunt u aanvragen indienen voor Azure Service Bus.
Zie de sectie Scenario's van de Microsoft Authentication Library (MSAL) voor .NET GitHub-opslagplaats voor een lijst met scenario's waarvoor het verkrijgen van tokens wordt ondersteund.
Met behulp van de nieuwste Azure.Messaging.ServiceBus-bibliotheek kunt u ServiceBusClient verifiëren met ClientSecretCredential, dat is gedefinieerd in de Azure.Identity-bibliotheek .
TokenCredential credential = new ClientSecretCredential("<tenant_id>", "<client_id>", "<client_secret>");
var client = new ServiceBusClient("<fully_qualified_namespace>", credential);
Als u de oudere .NET-pakketten gebruikt, raadpleegt u de Azure RBAC-voorbeelden voor Service Bus op GitHub.
Verwante inhoud
Zie Wat is op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC)? voor meer informatie over Azure RBAC.
Zie de volgende artikelen voor meer informatie over het toewijzen en beheren van Azure-roltoewijzingen met behulp van Azure PowerShell, de Azure CLI of de REST API:
Zie de volgende artikelen voor meer informatie over Service Bus-berichten: