Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Microsoft Entra ID verwenden, um Anfragen an die APIs des Azure IoT Hub Device Provisioning Service (DPS) zu authentifizieren, wie etwa das Erstellen einer Geräteidentität und das Aufrufen einer direkten Methode. Sie können auch Azure rollenbasierte Zugriffskontrolle (Azure RBAC) verwenden, um dieselben Service-APIs zu autorisieren. Wenn Sie diese Technologien zusammen verwenden, können Sie einem Microsoft Entra-Sicherheitsprinzipal Berechtigungen für den Zugriff auf die APIs des Azure IoT Hub Device Provisioning Service (DPS) gewähren. Dieser Sicherheitsprinzipal kann ein Benutzer, eine Gruppe oder ein Dienstprinzipal einer Anwendung sein.
Die Authentifizierung des Zugriffs mithilfe von Microsoft Entra ID und die Kontrolle der Berechtigungen mithilfe von Azure RBAC bieten eine verbesserte Sicherheit und Benutzerfreundlichkeit im Vergleich zu Sicherheitstokens. Um mögliche Sicherheitsprobleme im Zusammenhang mit Sicherheitstokens zu minimieren, wird empfohlen, wann immer möglich Microsoft Entra mit Ihrem Azure IoT Hub Gerätebereitstellungsdienst (DPS) zu verwenden.
Hinweis
Die Authentifizierung mit Microsoft Entra wird für die Geräte-APIs des Azure IoT Hub Gerätebereitstellungsdienst (DPS) (z. B. Gerät registrieren oder Status der Geräteregistrierung abfragen) nicht unterstützt. Verwenden Sie symmetrische Schlüssel, X.509 oder TPM, um Geräte beim Azure IoT Hub Device Provisioning Service (DPS) zu authentifizieren.
Authentifizierung und Autorisierung
Wenn ein Microsoft Entra-Sicherheitsprinzipal Zugriff auf eine Azure IoT Hub Gerätebereitstellungsdienst (DPS) API anfordert, wird die Identität des Prinzipals zunächst authentifiziert. Zur Authentifizierung muss die Anforderung zur Ausführung ein OAuth 2.0-Zugangs-Token enthalten. Der Ressourcenname zum Anfordern des Tokens lautet https://azure-devices-provisioning.net. Wenn die Anwendung in einer Azure-Ressource wie einer Azure-VM, einer Azure Functions App oder einer Azure App Service App ausgeführt wird, kann sie als verwaltete Identität dargestellt werden.
Nachdem der Microsoft Entra-Prinzipal authentifiziert wurde, ist der nächste Schritt die Autorisierung. In diesem Schritt verwendet Azure IoT Hub Gerätebereitstellungsdienst (DPS) den Microsoft Entra-Rollenzuweisungsdienst, um festzustellen, welche Berechtigungen der Prinzipal hat. Wenn die Berechtigungen des Prinzipals mit der angeforderten Ressource oder API übereinstimmen, autorisiert Azure IoT Hub Device Provisioning Service (DPS) die Anfrage. Dieser Schritt erfordert also, dass dem Sicherheitsprinzipal eine oder mehrere Azure-Rollen zugewiesen werden. Azure IoT Hub Device Provisioning Service (DPS) bietet einige integrierte Rollen, die allgemeine Berechtigungsgruppen umfassen.
Verwalten des Zugriffs auf Azure IoT Hub Device Provisioning Service (DPS) mithilfe einer Azure RBAC-Rollenzuweisung
Mit Microsoft Entra ID und RBAC erfordert der Azure IoT Hub-Gerätebereitstellungsdienst (DPS), dass der Prinzipal, der die API anfordert, über die entsprechende Berechtigungsstufe für die Autorisierung verfügt. Um dem Prinzipal die Berechtigung zu erteilen, weisen Sie ihm eine Rolle zu.
- Wenn es sich bei dem Prinzipal um einen Benutzer, eine Gruppe oder einen Dienstprinzipal einer Anwendung handelt, befolgen Sie die Anleitung unter Azure-Rollen über das Azure-Portal zuweisen.
- Wenn es sich bei dem Prinzipal um eine verwaltete Identität handelt, folgen Sie den Anweisungen in Einer verwalteten Identität über das Azure-Portal Zugriff auf eine Ressource zuweisen.
Um das geringste Privileg zu gewährleisten, weisen Sie die entsprechende Rolle immer dem niedrigstmöglichen Ressourcenbereich zu, der wahrscheinlich der Azure IoT Hub Device Provisioning Service (DPS) Bereich ist.
Azure IoT Hub Device Provisioning Service (DPS) bietet die folgenden in Azure integrierten Rollen zum Autorisieren des Zugriffs auf DPS-APIs mithilfe von Microsoft Entra ID und RBAC:
| Rolle | Beschreibung |
|---|---|
| Mitwirkender an Daten des Device Provisioning-Diensts | Ermöglicht Vollzugriff auf Vorgänge auf Datenebene des Device Provisioning-Diensts. |
| Device Provisioning Service-Datenleser | Ermöglicht den vollständigen Lesezugriff auf die Eigenschaften der Device Provisioning Service-Datenebene. |
Sie können auch benutzerdefinierte Rollen zur Verwendung mit Azure IoT Hub Device Provisioning Service (DPS) definieren, indem Sie die benötigten Berechtigungen kombinieren. Weitere Informationen finden Sie unter Erstellen von benutzerdefinierten Rollen für die rollenbasierte Zugriffskontrolle in Azure.
Schlüssel für die Richtlinien für Schreib- und gemeinsamen Zugriff auf der Steuerungsebene
Die Aktion Microsoft.Devices/provisioningServices/write erlaubt es einem Prinzipal, jede Eigenschaft der DPS-Ressource, einschließlich der Sammlung authorizationPolicies , zu erstellen oder zu aktualisieren. Da der Azure Resource Manager (ARM)-Vertrag für CreateOrUpdate bei jeder Richtlinie von Aufrufern bereitgestellte Werte für primaryKey und secondaryKey akzeptiert, kann ein Prinzipal, der über write für eine DPS-Ressource verfügt, Folgendes tun:
- Setze den Primär- oder Sekundärschlüssel jeder Shared-Access-Policy (einschließlich der Root-Policy
provisioningserviceowner) auf einen von ihnen gewählten Wert und authentifiziere dich dann als diese Policy. - Rotieren Sie die Schlüssel jeder Shared-Access-Richtlinie, die bestehende Nutzer ungültig macht.
- Fügen Sie eine neue benannte Shared-Access-Richtlinie mit einem gewählten Schlüsselwert hinzu.
Aus diesem Grund ist Microsoft.Devices/provisioningServices/write funktional gleichbedeutend mit der vollständigen Verwaltung der Anmeldeinformationen der Shared-Access-Richtlinie der Ressource, unabhängig davon, ob der Prinzipal auch Microsoft.Devices/provisioningServices/listkey/action oder Microsoft.Devices/provisioningServices/listkeys/action besitzt.
Important
Eine benutzerdefinierte Rolle, mit der Microsoft.Devices/provisioningServices/write für eine DPS-Ressource gewährt wird, ohne listkeys/action zu gewähren, isoliert die Verwaltung von Anmeldeinformationen nicht von der Ressourcenkonfiguration. Der Prinzipal hat weiterhin die volle Kontrolle über das Schlüsselmaterial der SAS-Richtlinien über den Schreibpfad. Verlasse dich nicht auf dieses Muster für die Least-Privileg-Konfiguration.
Wenn Sie die Ressourcenkonfiguration von der Verwaltung der Shared-Access-Richtlinien trennen müssen, verwenden Sie stattdessen eines der folgenden Muster:
- Bevorzuge Microsoft Entra ID-Authentifizierung für die Datenebene. Weisen Sie den integrierten Rollen Device Provisioning Service Data Contributor oder Device Provisioning Service Data Reader für das Einschreibungsmanagement zu und deaktivieren, wo möglich, den Zugriff auf die Shared-Access-Signatur auf der Ressource.
-
writeauf Ressourcenebene beschränken. Dawritedie Kontrolle über Schlüssel ermöglicht, gewähren Sie diese nur Sicherheitsprinzipalen, denen Sie die Anmeldeinformationen für SAS-Richtlinien anvertrauen. - Aktivitäten der Steuerungsebene überprüfen. Änderungen an
authorizationPolicies, die über den Control-Plane-PUT vorgenommen werden, werden im Azure Activity Log unter dem VorgangMicrosoft.Devices/provisioningServices/writeerfasst. Überprüfen Sie diese Ereignisse zusammen mitlistkeys/action-Ereignissen bei der Überwachung des Zugriffs auf Anmeldeinformationen.
Die gleichen Überlegungen gelten für Azure IoT Hub. Details finden Sie unter Zugriff auf den IoT Hub mit Microsoft Entra ID kontrollieren.
Ressourcenumfang
Bevor Sie einem Sicherheitsprinzipal eine Azure RBAC-Rolle zuweisen, legen Sie den Zugriffsbereich fest, den der Sicherheitsprinzipal haben soll. Es ist immer am besten, nur den engstmöglichen Berechtigungsumfang zu gewähren. Azure RBAC-Rollen, die in einem übergeordneten Bereich definiert sind, werden an die darunterliegenden Ressourcen vererbt.
Diese Liste beschreibt die Ebenen, auf denen Sie den Zugriff auf Azure IoT Hub festlegen können, beginnend mit dem engsten Geltungsbereich:
- Der Azure IoT Hub Device Provisioning Service (DPS). In diesem Bereich gilt eine Rollenzuweisung für den Azure IoT Hub Device Provisioning Service (DPS). Die Rollenzuweisung in kleineren Bereichen, wie z.B. bei der Registrierung von Gruppen oder Einzelpersonen, wird nicht unterstützt.
- Die Ressourcengruppe. In diesem Bereich gilt eine Rollenzuweisung für alle IoT Hubs in der Ressourcengruppe.
- Das Abonnement. In diesem Bereich gilt eine Rollenzuweisung für alle IoT Hubs in allen Ressourcengruppen im Abonnement.
- Eine Verwaltungsgruppe. In diesem Umfang gilt eine Rollenzuweisung für alle IoT Hubs in allen Ressourcengruppen in allen Abonnements in der Verwaltungsgruppe.
Berechtigungen für Azure IoT Hub Device Provisioning Service (DPS) APIs
Die folgende Tabelle beschreibt die verfügbaren Berechtigungen für Azure IoT Hub Device Provisioning Service (DPS) API-Vorgänge. Um einem Client den Aufruf eines bestimmten Vorgangs zu ermöglichen, stellen Sie sicher, dass die zugewiesene RBAC-Rolle des Clients ausreichende Berechtigungen für den Vorgang bietet.
| RBAC-Aktion | Beschreibung |
|---|---|
Microsoft.Devices/provisioningServices/attestationmechanism/details/action |
Details zum Attestierungsmechanismus abrufen |
Microsoft.Devices/provisioningServices/enrollmentGroups/read |
Lesen von Registrierungsgruppen |
Microsoft.Devices/provisioningServices/enrollmentGroups/write |
Schreiben von Registrierungsgruppen |
Microsoft.Devices/provisioningServices/enrollmentGroups/delete |
Löschen von Registrierungsgruppen |
Microsoft.Devices/provisioningServices/enrollments/read |
Registrierungen lesen |
Microsoft.Devices/provisioningServices/enrollments/write |
Registrierungen schreiben |
Microsoft.Devices/provisioningServices/enrollments/delete |
Löschen von Registrierungen |
Microsoft.Devices/provisioningServices/registrationStates/read |
Registrierungszustände lesen |
Microsoft.Devices/provisioningServices/registrationStates/delete |
Löschen von Registrierungszustände |
Azure IoT-Erweiterung für die Azure CLI
Die meisten Befehle für Azure IoT Hub Gerätebereitstellungsdienst (DPS) unterstützen die Microsoft Entra-Authentifizierung. Sie können die Art der Authentifizierung, die für die Ausführung von Befehlen verwendet wird, mit dem Parameter --auth-type steuern, der die Werte key oder login akzeptiert. Der Wert key ist der standardmäßige Wert.
Wenn
--auth-typeden Wertkeyhat, findet die Befehlszeilenschnittstelle (CLI) automatisch eine passende Richtlinie, wenn sie mit dem Azure IoT Hub Device Provisioning Service (DPS) interagiert.Wenn
--auth-typeden Wertloginhat, wird ein Zugriffstoken von der im Prinzipal angemeldeten Azure CLI für den Vorgang verwendet.Die folgenden Befehle unterstützen derzeit
--auth-type:az iot dps enrollmentaz iot dps enrollment-groupaz iot dps registration
Weitere Informationen finden Sie auf der Release-Seite der Azure IoT-Erweiterung für Azure CLI.
SDKs und Beispiele
- Azure IoT SDKs für Node.js Bereitstellungsdienst
- Vorschauversion des Azure IoT SDK für Java
- Microsoft Azure IoT SDKs for .NET Preview Release
Microsoft Entra ID-Zugriff über das Azure-Portal
Hinweis
Der Zugriff auf Microsoft Entra ID über das Azure-Portal ist während der Vorschau derzeit nicht verfügbar.
Nächste Schritte
- Weitere Informationen zu den Vorteilen der Verwendung von Microsoft Entra ID in Ihrer Anwendung finden Sie unter Integration in Microsoft Entra ID.
- Weitere Informationen zum Anfordern von Zugriffstoken aus Microsoft Entra ID für Benutzer und Dienstprinzipale finden Sie unter Authentifizierungsszenarien für Microsoft Entra ID.