Toegang tot IoT Hub beheren met behulp van Microsoft Entra-id
U kunt De Microsoft Entra-id gebruiken om aanvragen te verifiëren bij Azure IoT Hub-service-API's, zoals apparaatidentiteit maken en directe methode aanroepen. U kunt ook op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om dezelfde service-API's te autoriseren. Door deze technologieën samen te gebruiken, kunt u machtigingen verlenen voor toegang tot IoT Hub-service-API's naar een Microsoft Entra-beveiligingsprincipaal. Deze beveiligingsprincipaal kan een gebruiker, groep of toepassingsservice-principal zijn.
Het verifiëren van toegang met behulp van Microsoft Entra ID en het beheren van machtigingen met behulp van Azure RBAC biedt verbeterde beveiliging en gebruiksgemak ten opzichte van beveiligingstokens. Om mogelijke beveiligingsproblemen die inherent zijn aan beveiligingstokens te minimaliseren, raden we u aan om waar mogelijk Microsoft Entra-verificatie af te dwingen.
Notitie
Verificatie met Microsoft Entra-id wordt niet ondersteund voor de IoT Hub-apparaat-API's (zoals apparaat-naar-cloud-berichten en gerapporteerde eigenschappen bijwerken). Gebruik symmetrische sleutels of X.509 om apparaten te verifiëren bij IoT Hub.
Verificatie en autorisatie
Verificatie is het proces om aan te tonen dat u bent wie u zegt dat u bent. Verificatie controleert de identiteit van een gebruiker of apparaat naar IoT Hub. Het wordt soms ingekort tot AuthN. Autorisatie is het proces van het bevestigen van machtigingen voor een geverifieerde gebruiker of apparaat in IoT Hub. Hiermee geeft u op welke resources en opdrachten u toegang hebt en wat u kunt doen met deze resources en opdrachten. Autorisatie wordt soms ingekort tot AuthZ.
Wanneer een Microsoft Entra-beveiligingsprincipaal toegang vraagt tot een IoT Hub-service-API, wordt de identiteit van de principal eerst geverifieerd. Voor verificatie moet de aanvraag een OAuth 2.0-toegangstoken bevatten tijdens runtime. De resourcenaam voor het aanvragen van het token is https://iothubs.azure.net
. Als de toepassing wordt uitgevoerd in een Azure-resource zoals een Azure-VM, Azure Functions-app of Azure-app Service-app, kan deze worden weergegeven als een beheerde identiteit.
Nadat de Microsoft Entra-principal is geverifieerd, is de volgende stap autorisatie. In deze stap gebruikt IoT Hub de roltoewijzingsservice van Microsoft Entra om te bepalen welke machtigingen de principal heeft. Als de machtigingen van de principal overeenkomen met de aangevraagde resource of API, autoriseert IoT Hub de aanvraag. Voor deze stap moeten dus een of meer Azure-rollen worden toegewezen aan de beveiligingsprincipaal. IoT Hub biedt een aantal ingebouwde rollen met algemene groepen machtigingen.
Toegang tot IoT Hub beheren met behulp van Azure RBAC-roltoewijzing
Met Microsoft Entra ID en RBAC vereist IoT Hub dat de principal die de API aanvraagt, over het juiste machtigingsniveau voor autorisatie beschikt. Als u de principal de machtiging wilt geven, geeft u deze een roltoewijzing.
- Als de principal een service-principal voor gebruikers, groepen of toepassingen is, volgt u de richtlijnen in Azure-rollen toewijzen met behulp van Azure Portal.
- Als de principal een beheerde identiteit is, volgt u de richtlijnen in Een beheerde identiteit toewijzen aan een resource met behulp van Azure Portal.
Wijs altijd de juiste rol toe aan het laagst mogelijke resourcebereik, wat waarschijnlijk het IoT Hub-bereik is om minimale bevoegdheden te garanderen.
IoT Hub biedt de volgende ingebouwde Azure-rollen voor het autoriseren van toegang tot IoT Hub-service-API's met behulp van Microsoft Entra ID en RBAC:
Rol | Beschrijving |
---|---|
Inzender voor IoT Hub-gegevens | Biedt volledige toegang tot ioT Hub-gegevensvlakbewerkingen. |
IoT Hub-gegevenslezer | Hiermee heeft u volledige leestoegang tot de eigenschappen van het IoT Hub-gegevensvlak. |
Inzender voor IoT Hub-register | Hiermee heeft u volledige toegang tot het IoT Hub-apparaatregister. |
Inzender voor IoT Hub Twin | Hiermee staat u lees- en schrijftoegang toe tot alle IoT Hub-apparaten en moduledubbels. |
U kunt ook aangepaste rollen definiëren voor gebruik met IoT Hub door de benodigde machtigingen te combineren. Zie Aangepaste rollen maken voor op rollen gebaseerd toegangsbeheer van Azure voor meer informatie.
Resourcebereik
Voordat u een Azure RBAC-rol toewijst aan een beveiligingsprincipaal, bepaalt u het toegangsbereik dat de beveiligingsprincipaal moet hebben. Het is altijd het beste om alleen het smalst mogelijke bereik te verlenen. Azure RBAC-rollen die zijn gedefinieerd in een breder bereik, worden overgenomen door de onderliggende resources.
In deze lijst worden de niveaus beschreven waarop u toegang tot IoT Hub kunt bereiken, te beginnen met het smalste bereik:
- De IoT-hub. In dit bereik is een roltoewijzing van toepassing op de IoT-hub. Er is geen bereik kleiner dan een afzonderlijke IoT-hub. Roltoewijzing in kleinere bereiken, zoals afzonderlijke apparaatidentiteit of dubbelsectie, wordt niet ondersteund.
- De resourcegroep. In dit bereik is een roltoewijzing van toepassing op alle IoT-hubs in de resourcegroep.
- Het abonnement. In dit bereik is een roltoewijzing van toepassing op alle IoT-hubs in alle resourcegroepen in het abonnement.
- Een beheergroep. In dit bereik is een roltoewijzing van toepassing op alle IoT-hubs in alle resourcegroepen in alle abonnementen in de beheergroep.
Machtigingen voor IoT Hub-service-API's
In de volgende tabel worden de machtigingen beschreven die beschikbaar zijn voor API-bewerkingen voor IoT Hub-services. Als u wilt dat een client een bepaalde bewerking aanroept, moet u ervoor zorgen dat de toegewezen RBAC-rol van de client voldoende machtigingen biedt voor de bewerking.
RBAC-actie | Beschrijving |
---|---|
Microsoft.Devices/IotHubs/devices/read |
Lees een apparaat- of module-id. |
Microsoft.Devices/IotHubs/devices/write |
Een apparaat- of module-id maken of bijwerken. |
Microsoft.Devices/IotHubs/devices/delete |
Verwijder een apparaat- of module-id. |
Microsoft.Devices/IotHubs/twins/read |
Lees een apparaat of moduledubbel. |
Microsoft.Devices/IotHubs/twins/write |
Schrijf een apparaat of moduledubbel. |
Microsoft.Devices/IotHubs/jobs/read |
Hiermee wordt een lijst met taken geretourneerd. |
Microsoft.Devices/IotHubs/jobs/write |
Een taak maken of bijwerken. |
Microsoft.Devices/IotHubs/jobs/delete |
Verwijder een taak. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action |
Verzend een cloud-naar-apparaat-bericht naar elk apparaat. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action |
Ontvang, voltooi of laat een feedbackmelding over cloud-naar-apparaat-berichten ontvangen, voltooien of verlaten. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action |
Verwijder alle opdrachten die in behandeling zijn voor een apparaat. |
Microsoft.Devices/IotHubs/directMethods/invoke/action |
Roep een directe methode aan op elk apparaat of elke module. |
Microsoft.Devices/IotHubs/fileUpload/notifications/action |
Meldingen voor het uploaden van bestanden ontvangen, voltooien of afbreken. |
Microsoft.Devices/IotHubs/statistics/read |
Apparaat- en servicestatistieken lezen. |
Microsoft.Devices/IotHubs/configurations/read |
Configuraties voor apparaatbeheer lezen. |
Microsoft.Devices/IotHubs/configurations/write |
Apparaatbeheerconfiguraties maken of bijwerken. |
Microsoft.Devices/IotHubs/configurations/delete |
Verwijder een configuratie voor apparaatbeheer. |
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action |
Pas de configuratie-inhoud toe op een edge-apparaat. |
Microsoft.Devices/IotHubs/configurations/testQueries/action |
Valideer de doelvoorwaarde en aangepaste metrische query's voor een configuratie. |
Tip
- Voor de updatebewerking voor bulkregisters zijn zowel
Microsoft.Devices/IotHubs/devices/write
alsMicrosoft.Devices/IotHubs/devices/delete
. - Voor de bewerking Dubbelquery is vereist
Microsoft.Devices/IotHubs/twins/read
. - Download Digital Twin vereist
Microsoft.Devices/IotHubs/twins/read
. Voor het bijwerken van Digital Twin is vereistMicrosoft.Devices/IotHubs/twins/write
. - Voor zowel de opdracht Component aanroepen als de opdracht Hoofdniveau aanroepen is vereist
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Notitie
Als u gegevens wilt ophalen uit IoT Hub met behulp van Microsoft Entra ID, stelt u routering in naar een aangepast Event Hubs-eindpunt. Als u toegang wilt krijgen tot het ingebouwde eindpunt dat compatibel is met Event Hubs, gebruikt u de methode verbindingsreeks (gedeelde toegangssleutel) zoals voorheen.
Microsoft Entra-verificatie afdwingen
IoT Hub biedt standaard ondersteuning voor service-API-toegang via zowel Microsoft Entra-id als beleid voor gedeelde toegang en beveiligingstokens. Als u potentiële beveiligingsproblemen wilt minimaliseren die inherent zijn aan beveiligingstokens, kunt u de toegang uitschakelen met beleid voor gedeelde toegang.
Waarschuwing
Als u verbindingen weigert met behulp van beleid voor gedeelde toegang, verliezen alle gebruikers en services die verbinding maken met deze methode onmiddellijk de toegang. Met name omdat Device Provisioning Service (DPS) alleen ondersteuning biedt voor het koppelen van IoT-hubs met behulp van beleid voor gedeelde toegang, mislukken alle apparaatinrichtingsstromen met de fout 'niet geautoriseerd'. Ga zorgvuldig door en plan de toegang te vervangen door op rollen gebaseerde toegang van Microsoft Entra. Ga niet verder als u DPS gebruikt.
- Zorg ervoor dat uw serviceclients en gebruikers voldoende toegang hebben tot uw IoT-hub. Volg het principe van minimale bevoegdheden.
- Ga in Azure Portal naar uw IoT-hub.
- Selecteer in het linkerdeelvenster Beleid voor gedeelde toegang.
- Selecteer weigeren onder Verbinding maken met behulp van beleid voor gedeelde toegang de optie Weigeren en bekijk de waarschuwing.
Uw IoT Hub-service-API's kunnen nu alleen worden geopend via Microsoft Entra-id en RBAC.
Toegang tot Microsoft Entra-id vanuit Azure Portal
U kunt toegang bieden tot IoT Hub vanuit Azure Portal met gedeeld toegangsbeleid of Microsoft Entra-machtigingen.
Wanneer u toegang probeert te krijgen tot IoT Hub vanuit Azure Portal, controleert Azure Portal eerst met de Azure-portal of u een Azure-rol hebt toegewezen.Microsoft.Devices/iotHubs/listkeys/action
Als u dat hebt, gebruikt Azure Portal de sleutels van beleid voor gedeelde toegang voor toegang tot IoT Hub. Zo niet, dan probeert Azure Portal toegang te krijgen tot gegevens met behulp van uw Microsoft Entra-account.
Voor toegang tot IoT Hub vanuit Azure Portal met behulp van uw Microsoft Entra-account hebt u machtigingen nodig voor toegang tot IoT Hub-gegevensbronnen (zoals apparaten en tweelingen). U hebt ook machtigingen nodig om naar de IoT Hub-resource in Azure Portal te gaan. De ingebouwde rollen van IoT Hub verlenen toegang tot resources zoals apparaten en dubbels, maar ze verlenen geen toegang tot de IoT Hub-resource. Toegang tot de portal vereist dus ook de toewijzing van een Azure Resource Manager-rol, zoals Lezer. De rol van lezer is een goede keuze, omdat dit de meest beperkte rol is waarmee u door de portal kunt navigeren. Het bevat niet de Microsoft.Devices/iotHubs/listkeys/action
machtiging (die toegang biedt tot alle IoT Hub-gegevensbronnen via beleid voor gedeelde toegang).
Als u ervoor wilt zorgen dat een account geen toegang heeft buiten de toegewezen machtigingen, neemt u de Microsoft.Devices/iotHubs/listkeys/action
machtiging niet op wanneer u een aangepaste rol maakt. Als u bijvoorbeeld een aangepaste rol wilt maken die apparaatidentiteiten kan lezen, maar geen apparaten kan maken of verwijderen, maakt u een aangepaste rol die:
- Heeft de
Microsoft.Devices/IotHubs/devices/read
gegevensactie. - Heeft de
Microsoft.Devices/IotHubs/devices/write
gegevensactie niet. - Heeft de
Microsoft.Devices/IotHubs/devices/delete
gegevensactie niet. - Heeft de
Microsoft.Devices/iotHubs/listkeys/action
actie niet.
Controleer vervolgens of het account geen andere rollen heeft met de Microsoft.Devices/iotHubs/listkeys/action
machtiging, zoals Eigenaar of Inzender. Als u wilt toestaan dat het account toegang heeft tot resources en door de portal navigeert, wijst u Lezer toe.
Toegang tot Microsoft Entra-id vanuit Azure CLI
De meeste opdrachten voor IoT Hub ondersteunen Microsoft Entra-verificatie. U kunt het type verificatie bepalen dat wordt gebruikt voor het uitvoeren van opdrachten met behulp van de --auth-type
parameter, die accepteert of login
waarden accepteertkey
. De key
waarde is de standaardwaarde.
Wanneer
--auth-type
dekey
waarde is ingesteld, zoals eerder, detecteert de CLI automatisch een geschikt beleid wanneer deze communiceert met IoT Hub.Wanneer
--auth-type
delogin
waarde is, wordt een toegangstoken van de Azure CLI die is aangemeld in de principal gebruikt voor de bewerking.
Zie de azure IoT-extensie voor de releasepagina van Azure CLI voor meer informatie.
SDK-voorbeelden
Volgende stappen
- Zie Integreren met Microsoft Entra ID voor meer informatie over de voordelen van het gebruik van Microsoft Entra ID in uw toepassing.
- Zie Verificatiescenario's voor Microsoft Entra ID voor gebruikers en service-principals voor meer informatie over het aanvragen van toegangstokens van Microsoft Entra ID.
Gebruik Device Provisioning Service om meerdere X.509-apparaten in te richten met behulp van inschrijvingsgroepen.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor