Teilen über


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. Dieses Feature beseitigt die Notwendigkeit, dass Entwickler Anmeldeinformationen verwalten müssen, indem sie eine Identität bereitstellen. Es gibt zwei Typen 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

Systemseitig zugewiesene verwaltete Identität

Sie können die systemseitig zugewiesene verwaltete Identität im Azure-Portal aktivieren oder deaktivieren

  1. Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem IoT-Hub.

  2. Wählen Sie im Navigationsmenü im Abschnitt Sicherheitseinstellungen die Option Identität aus.

  3. Wählen Sie die Registerkarte Systemseitig zugewiesen aus.

  4. Ändern Sie den Status der systemseitig zugewiesenen verwalteten Identität in 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 vor dem Deaktivieren des Features sicher, dass keine benutzerdefinierten Endpunkte die Authentifizierung mit der systemseitig zugewiesenen verwalteten Identität verwenden.

    Screenshot der Aktivierung der systemseitig zugewiesenen verwalteten Identität für einen IoT-Hub

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.

  1. 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.

  2. Wechseln Sie zu Ihrem IoT-Hub und wählen Sie dann im Dienstmenü im Azure-Portal unter Sicherheitseinstellungen den Eintrag Identität aus.

  3. Wählen Sie auf der Registerkarte "Vom Benutzer zugewiesen" die Option "Mit einer vom Benutzer zugewiesenen verwalteten Identität verknüpfen" aus. Wählen Sie die vom Benutzer zugewiesene verwaltete Identität aus, die Sie Ihrem Hub hinzufügen möchten, und wählen Sie dann "Hinzufügen" aus.

    Screenshot, der zeigt, wie Eine vom Benutzer zugewiesene verwaltete Identität für einen IoT-Hub hinzugefügt wird.

  4. Sie können eine benutzerseitig zugewiesene Identität aus einem IoT-Hub entfernen. Wählen Sie die vom Benutzer zugewiesene Identität aus, die Sie entfernen möchten, und wählen Sie "Entfernen" aus. Sie entfernen es nur aus Ihrem IoT-Hub, und durch diese Entfernung wird die vom Benutzer zugewiesene Identität 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.

  1. Wechseln Sie im Azure-Portal zu Ihrem Event Hub, um der verwalteten Identität den richtigen Zugriff zuzuweisen.

  2. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.

    Screenshot der Seite „Zugriffssteuerung (IAM)“ mit geöffnetem Menü „Rollenzuweisung hinzufügen“

  4. 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.

  5. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.

  6. 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.

  7. 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.

  8. 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.

  9. Wenn Sie die Konnektivität mit Ihrem benutzerdefinierten Endpunkt über ein virtuelles Netzwerk einschränken müssen, müssen Sie die Ausnahme für vertrauenswürdige Microsoft-Erstanbieter aktivieren, um Ihrem IoT-Hub Zugriff auf den jeweiligen 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 in der Liste "Ausnahmen " das Kontrollkästchen für den Zugriff auf vertrauenswürdige Microsoft-Dienste für den Zugriff auf Event Hubs, und wählen Sie dann "Speichern" aus. Diese Anforderung gilt auch für Speicherkonto und Servicebus. Erfahren Sie mehr über die IoT Hub-Unterstützung für virtuelle Netzwerke mit Azure Private Link.

    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. Warten Sie einige Minuten, bis die Rollenzuweisung wirksam wird.

  10. Wechseln Sie als Nächstes zu Ihrem IoT-Hub. Navigieren Sie in Ihrem Hub zu Nachrichtenrouting, und wählen Sie Hinzufügen aus.

  11. Erstellen Sie auf der Registerkarte Endpunkt einen Endpunkt für Ihren Event Hub, indem Sie die folgenden Informationen angeben:

    Parameter Wert
    Endpunkttyp Wählen Sie Event Hubs aus.
    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.

    Screenshot eines Event Hub-Endpunkts mit benutzerseitig zugewiesener Authentifizierung

  12. 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:

  1. Wählen Sie in Ihrem IoT-Hub im linken Navigationsbereich Nachrichtenrouting und dann Benutzerdefinierte Endpunkte aus.

  2. Aktivieren Sie das Kontrollkästchen für den benutzerdefinierten Endpunkt, den Sie ändern möchten, und wählen Sie Authentifizierungstyp ändern aus.

  3. 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.

  1. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.

  2. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.

    Screenshot der Seite „Zugriffssteuerung (IAM)“ mit geöffnetem Menü „Rollenzuweisung hinzufügen“

  4. Wählen Sie auf der Registerkarte Rolle die Option Mitwirkender an Storage-Blobdaten aus. (Wählen Sie nicht Mitwirkender oder Speicherkontomitwirkender aus.)

  5. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.

  6. 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.

  7. 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.

  8. 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 virtuelles Netzwerk einschränken müssen, müssen Sie die Ausnahme für vertrauenswürdige Microsoft-Erstanbieter 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 in der Liste Ausnahmen das Kontrollkästchen für Erlauben Sie vertrauenswürdigen Microsoft-Diensten den Zugriff auf dieses Speicherkonto, und wählen Sie dann Speichern aus. Erfahren Sie mehr über die IoT Hub-Unterstützung für virtuelle Netzwerke mit Azure Private Link.

    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. Warten Sie einige Minuten, bis die Rollenzuweisung wirksam wird.

  9. Navigieren Sie auf der Seite für Ihre IoT Hub-Ressource zur Registerkarte Dateiupload.

  10. 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 und dann "Speichern" aus. 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.

    Screenshot eines Dateiuploads mit MSI

    Hinweis

    Im Dateiuploadszenario müssen sowohl der Hub als auch Ihr Gerät eine Verbindung mit Ihrem Speicherkonto herstellen. Die vorherigen Schritte dienen zum Verbinden Ihres IoT-Hubs mit Ihrem Speicherkonto mit dem gewünschten Authentifizierungstyp. Sie müssen Ihr Gerät mit dem SAS-URI mit dem Speicher verbinden. Derzeit wird der SAS-URI mithilfe der Verbindungszeichenfolge generiert. Führen Sie die Schritte im Hochladen von Dateien mit IoT Hub aus.

Konfigurieren des Massenimports/-exports von Geräten mit verwalteten Identitäten

IoT Hub unterstützt die Funktionalität zum Importieren und Exportieren von Geräteinformationen in Massen von oder in ein vom Kunden bereitgestelltes Speicher-BLOB. Diese Funktion erfordert Konnektivität von IoT Hub mit dem Speicherkonto.

  1. Navigieren Sie im Azure-Portal zu Ihrem Speicherkonto.

  2. Wählen Sie die Option Zugriffssteuerung (IAM) aus.

  3. Wählen Sie Hinzufügen > Rollenzuweisung hinzufügen aus.

    Screenshot der Seite „Zugriffssteuerung (IAM)“ mit geöffnetem Menü „Rollenzuweisung hinzufügen“

  4. Wählen Sie auf der Registerkarte Rolle die Option Mitwirkender an Storage-Blobdaten aus. (Wählen Sie nicht Mitwirkender oder Speicherkontomitwirkender aus.)

  5. Wählen Sie auf der Registerkarte Mitglieder die Option Verwaltete Identität und dann Mitglieder auswählen aus.

  6. 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.

  7. 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.

  8. 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. Sie müssen die folgenden Eigenschaften im Anforderungstext 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 ist und die Eigenschaft "userAssignedIdentity " nicht null ist, verwenden die Aufträge die angegebene vom Benutzer zugewiesene verwaltete Identität.
  • Wenn der IoT-Hub nicht mit der in userAssignedIdentity angegebenen vom Benutzer zugewiesenen verwalteten Identität konfiguriert ist, schlägt der Auftrag fehl.
  • Wenn storageAuthenticationType auf identityBased festgelegt ist und die Eigenschaft userAssignedIdentity null ist, verwenden die Jobs die systemzugewiesene Identität.
  • Wenn der IoT-Hub nicht mit der vom Benutzer zugewiesenen verwalteten Identität konfiguriert ist, schlägt der Auftrag fehl.
  • Wenn "storageAuthenticationType " auf "identityBased " festgelegt ist und vom Benutzer zugewiesene oder vom System zugewiesene verwaltete Identitäten nicht auf dem Hub konfiguriert sind, schlägt der Auftrag fehl.

SDK-Beispiele

Nächste Schritte

Verwenden Sie die folgenden Links, um mehr über IoT Hub-Features zu erfahren: