IoT Hub-Unterstützung für verwaltete Identitäten
Verwaltete Identitäten stellen für Azure-Dienste eine automatisch verwaltete Identität in Microsoft Entra ID auf sichere Weise bereit. Dadurch entfällt die Notwendigkeit, dass Entwickler Anmeldeinformationen durch Bereitstellung einer Identität verwalten müssen. Es gibt zwei Arten von verwalteten Identitäten: systemseitig und benutzerseitig zugewiesene Identitäten. IoT Hub unterstützt beides.
In IoT Hub können verwaltete Identitäten verwendet werden, um IoT Hub mit anderen Azure-Diensten für Features wie Nachrichtenrouting, Dateiupload und Massenimport/-export von Geräten zu verbinden. In diesem Artikel erfahren Sie, wie Sie systemseitig zugewiesene und benutzerseitig zugewiesene verwaltete Identitäten in Ihrem IoT Hub für verschiedene Funktionen verwenden können.
Voraussetzungen
Um die Unterschiede zwischen systemseitig und benutzerseitig zugewiesener verwalteter Identität zu verstehen, siehe Was sind verwaltete Identitäten für Azure-Ressourcen?
Ein IoT Hub in Ihrem Azure-Abonnement. Wenn Sie noch keinen Hub haben, können Sie die Schritte unter Erstellen eines IoT-Hubs ausführen.
Systemseitig zugewiesene verwaltete Identität
Sie können die systemseitig zugewiesene verwaltete Identität im Azure-Portal aktivieren oder deaktivieren
Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT Hub.
Wählen Sie im Navigationsmenü im Abschnitt Sicherheitseinstellungen die Option Identität aus.
Wählen Sie die Registerkarte Systemseitig zugewiesen aus.
Ändern Sie den Status unter systemseitig zugewiesene verwaltete Identität zu Ein oder Aus, und wählen Sie dann Speichern aus.
Hinweis
Sie können die systemseitig zugewiesene verwaltete Identität nicht deaktivieren, während sie verwendet wird. Stellen Sie sicher, dass keine benutzerdefinierten Endpunkte die systemseitig zugewiesene Authentifizierung der verwalteten Identität verwenden, bevor Sie das Feature deaktivieren.
Benutzerseitig zugewiesene verwaltete Identität
In diesem Abschnitt erfahren Sie, wie Sie eine benutzerseitig zugewiesene verwaltete Identität über das Azure-Portal einer VM hinzufügen und von ihr entfernen können.
Zuerst müssen Sie eine benutzerseitig zugewiesene verwaltete Identität als eigenständige Ressource erstellen. Dazu können Sie die Anweisungen unter Erstellen einer benutzerseitig zugewiesenen verwalteten Identität befolgen.
Wechseln Sie zu Ihrem IoT-Hub, und navigieren Sie im Io Hub-Portal zur Identität.
Klicken Sie unter der Registerkarte Benutzerzugeordnet auf Zuordnen einer benutzerzugeordneten verwalteten Identität. Wählen Sie die benutzerseitig zugewiesene verwaltete Identität aus, die Sie Ihrem Hub hinzufügen möchten, und klicken Sie auf Auswählen.
Sie können eine benutzerseitig zugewiesene Identität aus einem IoT-Hub entfernen. Wählen Sie die benutzerseitig zugewiesene Identität aus, die Sie entfernen möchten, und klicken Sie auf die Schaltfläche Entfernen. Beachten Sie, dass Sie die benutzerseitig zugewiesene Identität nur aus IoT-Hub entfernen; sie wird dadurch nicht als Ressource gelöscht. Zum Löschen der benutzerseitig zugewiesenen Identität als Ressource befolgen Sie die Anweisungen unter Verwalten einer benutzerseitig zugewiesenen verwalteten Identität.
Ausgehende Konnektivität von IoT Hub zu anderen Azure-Ressourcen
Verwaltete Identitäten können für die ausgehende Konnektivität von IoT Hub zu anderen Azure-Diensten verwendet werden. Sie können auswählen, welche verwaltete Identität für jede ausgehende IoT Hub-Konnektivität mit kundeneigenen Endpunkten verwendet werden soll, einschließlich Speicherkonten, Event Hubs und Service Bus-Endpunkten.
Hinweis
Nur die vom System zugewiesene verwaltete Identität gewährt IoT Hub Zugriff auf private Ressourcen. Wenn Sie eine vom Benutzer zugewiesene verwaltete Identität verwenden möchten, muss der öffentliche Zugriff auf diese privaten Ressourcen aktiviert werden, um Konnektivität zu ermöglichen.
Konfigurieren des Nachrichtenroutings mit verwalteten Identitäten
In diesem Abschnitt verwenden Sie das Nachrichten-Routing zu einem benutzerdefinierten Event Hubs-Endpunkt als Beispiel. Das Beispiel gilt auch für andere benutzerdefinierte Routing-Endpunkte.
Wechseln Sie im Azure-Portal zu Ihrem Event Hub, um der verwalteten Identität den richtigen Zugriff zuzuweisen.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.
Wählen Sie auf der Registerkarte Rolle die Option Azure Event Hubs-Datensender aus.
Hinweis
Wählen Sie für ein Speicherkonto Mitwirkender an Storage-Blobdaten (nicht „Mitwirkender“ oder „Speicherkontomitwirkender“) als Rolle aus. Wählen Sie für einen Service Bus Azure Service Bus-Datensender aus.
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie für benutzerseitig zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Benutzerseitig zugewiesene verwaltete Identität und dann Ihre benutzerseitig zugewiesene verwaltete Identität aus.
Wählen Sie für vom System zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Alle systemseitig zugewiesenen verwalteten Identitäten und dann den Ressourcennamen Ihres IoT-Hubs aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Weitere Informationen zu Rollenzuweisungen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Wenn Sie die Konnektivität mit Ihrem benutzerdefinierten Endpunkt über ein VNet einschränken müssen, müssen Sie die Ausnahme des vertrauenswürdigen Erstanbieters von Microsoft aktivieren, um Ihrem IoT-Hub Zugriff auf den spezifischen Endpunkt zu gewähren. Wenn Sie beispielsweise einen benutzerdefinierten Event Hub-Endpunkt hinzufügen, navigieren Sie in Ihrem Event Hub zur Registerkarte Firewalls und virtuelle Netzwerke, und aktivieren Sie die Option Zugriff aus ausgewählten Netzwerken erlauben. Aktivieren Sie unter Ausnahmen das Kontrollkästchen für Allow trusted Microsoft services to access event hubs (Vertrauenswürdigen Microsoft-Diensten den Zugriff auf Event Hubs erlauben). Klicken Sie auf die Schaltfläche Save . Dies gilt auch für Speicherkonto und Service Bus. Informieren Sie sich genauer über IoT Hub-Unterstützung für virtuelle Netzwerke.
Hinweis
Sie müssen die vorstehenden Schritte ausführen, um der verwalteten Identität den richtigen Zugriff zuzuweisen, bevor Sie in IoT Hub den Event Hub als benutzerdefinierten Endpunkt hinzufügen. Bitte warten Sie einige Minuten, bis die Rollenzuweisung weitergegeben wurde.
Wechseln Sie als Nächstes zu Ihrem IoT-Hub. Navigieren Sie in Ihrem Hub zu Nachrichtenrouting, und wählen Sie Hinzufügen aus.
Erstellen Sie auf der Registerkarte Endpunkt einen Endpunkt für Ihren Event Hub, indem Sie die folgenden Informationen angeben:
Parameter Wert Endpunkttyp Klicke auf Event Hubs. Endpunktname Geben Sie einen eindeutigen Namen für einen neuen Endpunkt an, oder wählen Sie Vorhandene auswählen aus, um einen vorhandenen Event Hubs-Endpunkt auszuwählen. Event Hubs-Namespace Verwenden Sie das Dropdownmenü zum Auswählen eines vorhandenen Event Hubs-Namespaces in Ihrem Abonnement. Event Hub-Instanz Verwenden Sie das Dropdownmenü zum Auswählen eines vorhandenen Event Hubs in Ihrem Namespace. Authentifizierungstyp Wählen Sie Benutzerseitig zugewiesen und dann im Dropdownmenü die benutzerseitig zugewiesene Identität aus, die Sie in Ihrem Event Hub erstellt haben. Wählen Sie Erstellen + weiter aus. Sie können den Vorgang mit dem Assistenten fortsetzen, um eine Route zu erstellen, die auf diesen Endpunkt verweist, oder Sie können den Assistenten schließen.
Sie können den Authentifizierungstyp eines vorhandenen benutzerdefinierten Endpunkts ändern. Führen Sie die folgenden Schritte zum Ändern eines Endpunkts aus:
Wählen Sie in Ihrem IoT-Hub im linken Navigationsbereich Nachrichtenrouting und dann Benutzerdefinierte Endpunkte aus.
Aktivieren Sie das Kontrollkästchen für den benutzerdefinierten Endpunkt, den Sie ändern möchten, und wählen Sie Authentifizierungstyp ändern aus.
Wählen Sie den neuen Authentifizierungstyp für diesen Endpunkt und dann Speichern aus.
Konfigurieren des Dateiuploads mit verwalteten Identitäten
Das IoT Hub-Feature Dateiupload ermöglicht Geräten das Hochladen von Dateien in ein kundeneigenes Speicherkonto. IoT Hub muss mit dem Speicherkonto verbunden sein, damit der Dateiuploadvorgang funktioniert. Ähnlich wie beim Nachrichtenrouting können Sie den bevorzugten Authentifizierungstyp und die verwaltete Identität für ausgehende IoT Hub-Konnektivität mit Ihrem Azure Storage-Konto auswählen.
Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.
Wählen Sie auf der Registerkarte Rolle die Option Mitwirkender an Storage-Blobdaten aus. (Wählen Sie nicht Mitwirkender oder Speicherkontomitwirkender aus.)
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie für benutzerseitig zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Benutzerseitig zugewiesene verwaltete Identität und dann Ihre benutzerseitig zugewiesene verwaltete Identität aus.
Wählen Sie für vom System zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Alle systemseitig zugewiesenen verwalteten Identitäten und dann den Ressourcennamen Ihres IoT-Hubs aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Weitere Informationen zu Rollenzuweisungen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Wenn Sie die Konnektivität mit Ihrem Speicherkonto über ein VNet einschränken müssen, müssen Sie die Ausnahme des vertrauenswürdigen Erstanbieters von Microsoft aktivieren, um Ihrem IoT-Hub Zugriff auf das Speicherkonto zu gewähren. Navigieren Sie auf der Ressourcenseite für Ihr Speicherkonto zur Registerkarte Firewalls und virtuelle Netzwerke, und aktivieren Sie die Option Allow access from selected networks (Zugriff von ausgewählten Netzwerken zulassen). Aktivieren Sie unter Ausnahmen das Kontrollkästchen für Vertrauenswürdigen Microsoft-Diensten den Zugriff auf dieses Speicherkonto erlauben. Klicken Sie auf die Schaltfläche Save . Informieren Sie sich genauer über IoT Hub-Unterstützung für virtuelle Netzwerke.
Hinweis
Sie müssen die vorstehenden Schritte ausführen, um der verwalteten Identität den richtigen Zugriff zuzuweisen, bevor Sie das Speicherkonto in IoT Hub für einen Dateiupload mithilfe der verwalteten Identität speichern. Bitte warten Sie einige Minuten, bis die Rollenzuweisung weitergegeben wurde.
Navigieren Sie auf der Seite für Ihre IoT Hub-Ressource zur Registerkarte Dateiupload.
Wählen Sie auf der angezeigten Seite den Container aus, den Sie in Ihrem Blobspeicher verwenden möchten, und konfigurieren Sie die Dateibenachrichtigungseinstellungen, SAS TTL, Standard-TTL und Anzahl maximaler Zustellungen nach Bedarf. Wählen Sie den bevorzugten Authentifizierungstyp aus, und klicken Sie auf Speichern. Wenn bei diesem Schritt eine Fehlermeldung angezeigt wird, legen Sie Ihr Speicherkonto vorübergehend so fest, dass der Zugriff aus Allen Netzwerken ermöglicht wird, und wiederholen Sie dann den Vorgang. Sie können die Firewall für das Speicherkonto konfigurieren, sobald die Konfiguration des Dateiuploads beendet ist.
Hinweis
Im Dateiuploadszenario müssen sowohl der Hub als auch Ihr Gerät eine Verbindung mit Ihrem Speicherkonto herstellen. Die vorstehenden Schritte dienen zum Verbinden Ihres IoT-Hubs mit Ihrem Speicherkonto mit dem gewünschten Authentifizierungstyp. Sie müssen Ihr Gerät weiterhin mithilfe des SAS-URI mit dem Speicher verbinden. Heutzutage wird der SAS-URI mithilfe einer Verbindungszeichenfolge generiert. Wir werden bald Unterstützung zum Generieren eines SAS-URI mit verwalteter Identität hinzufügen. Führen Sie bitte die Schritte unter Dateiupload aus.
Konfigurieren des Massenimports/-exports von Geräten mit verwalteten Identitäten
IoT Hub unterstützt die Funktion zum Importieren und Exportieren von Geräteinformationen per Massenvorgang aus oder in vom Kunden bereitgestellte(n) Azure Storage Blob-Instanzen. Diese Funktion erfordert Konnektivität von IoT Hub mit dem Speicherkonto.
Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.
Wählen Sie die Option Zugriffssteuerung (IAM) aus.
Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.
Wählen Sie auf der Registerkarte Rolle die Option Mitwirkender an Storage-Blobdaten aus. (Wählen Sie nicht Mitwirkender oder Speicherkontomitwirkender aus.)
Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.
Wählen Sie für benutzerseitig zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Benutzerseitig zugewiesene verwaltete Identität und dann Ihre benutzerseitig zugewiesene verwaltete Identität aus.
Wählen Sie für vom System zugewiesene verwaltete Identitäten Ihr Abonnement, anschließend Alle systemseitig zugewiesenen verwalteten Identitäten und dann den Ressourcennamen Ihres IoT-Hubs aus.
Wählen Sie auf der Registerkarte Überprüfen und zuweisen die Option Überprüfen und zuweisen aus, um die Rolle zuzuweisen.
Weitere Informationen zu Rollenzuweisungen finden Sie unter Zuweisen von Azure-Rollen über das Azure-Portal.
Verwenden der REST-API oder des SDK für Import- und Exportaufträge
Sie können jetzt die Azure IoT REST-APIs zum Erstellen von Import- und Exportaufträgen verwenden. Dazu müssen Sie im Anforderungstext die folgenden Eigenschaften angeben:
- storageAuthenticationType: Legen Sie den Wert auf identityBased fest.
- inputBlobContainerUri: Legen Sie diese Eigenschaft nur im Importauftrag fest.
- outputBlobContainerUri: Legen Sie diese Eigenschaft für die Import- und Exportaufträge fest.
- identity: Legen Sie den Wert auf die verwaltete Identität fest, die verwendet werden soll.
Azure IoT Hub SDKs unterstützen diese Funktion im Registrierungs-Manager des Dienstclients. Der folgende Codeausschnitt zeigt, wie ein Importauftrag bzw. ein Exportauftrag mithilfe des C# SDK ausgelöst werden.
C#-Codeausschnitt
// Create an export job
JobProperties jobProperties = JobProperties.CreateForExportJob(
outputBlobContainerUri: blobContainerUri,
excludeKeysInExport: false,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
// Create an import job
JobProperties jobProperties = JobProperties.CreateForImportJob(
inputBlobContainerUri: blobContainerUri,
outputBlobContainerUri: blobContainerUri,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
Python-Codeausschnitt
# see note below
iothub_job_manager = IoTHubJobManager("<IoT Hub connection information>")
# Create an import job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="import",
input_blob_container_uri="<input container URI>",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
# Create an export job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="export",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
exclude_keys_in_export=True,
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
Hinweis
- Wenn storageAuthenticationType auf identityBased festgelegt wurde und die Eigenschaft userAssignedIdentity nicht NULL ist, verwenden die Aufträge die angegebene benutzerseitig zugewiesene verwaltete Identität.
- Wenn der IoT Hub nicht mit der benutzerseitig zugewiesenen verwalteten Identität konfiguriert wurde, die in userAssignedIdentity angegeben ist, schlägt der Auftrag fehl.
- Wenn storageAuthenticationType auf identityBased festgelegt wurde, hat die Eigenschaft userAssignedIdentity den Wert „NULL“. Die Aufträge verwenden systemseitig zugewiesene Identität.
- Wenn der IoT-Hub nicht mit der benutzerseitig zugewiesenen verwalteten Identität konfiguriert wurde, schlägt der Auftrag fehl.
- Wenn storageAuthenticationType auf identityBased festgelegt wurde und weder benutzerseitig zugewiesene noch systemseitig zugewiesene verwaltete Identitäten auf dem Hub konfiguriert sind, schlägt der Auftrag fehl.
SDK-Beispiele
Nächste Schritte
Verwenden Sie die unten angegebenen Links, um weitere Informationen zu IoT Hub-Features zu erhalten: