Was ist Azure IoT Hub Device Provisioning Service?
IoT Hub Device Provisioning Service (DPS) ist ein Hilfsdienst für IoT Hub und ermöglicht eine unbeaufsichtigte Just-In-Time-Bereitstellung im richtigen IoT-Hub ganz ohne Benutzereingriff. DPS ermöglicht die skalierbare und sichere Bereitstellung von Millionen von Geräten. Viele der normalerweise mit der Bereitstellung verbundenen manuellen Schritte sind bei DPS automatisiert, um die Bereitstellung von IoT-Geräten zu beschleunigen und das Risiko manueller Fehler zu verringern.
Funktionsweise des Gerätebereitstellungsdiensts
Das folgende Diagramm veranschaulicht, was bei der Bereitstellung eines Geräts mit DPS geschieht.
Vor Beginn der Gerätebereitstellung sind zwei manuelle Vorbereitungsschritte erforderlich:
- Auf der Geräteseite bereitet der Gerätehersteller das Gerät für die Bereitstellung vor, indem er es mit Authentifizierungsanmeldeinformationen und der zugewiesenen DPS-ID (Device Provisioning Service) sowie dem zugewiesenen Endpunkt vorkonfiguriert.
- Auf der Cloudseite bereiten Sie oder der Gerätehersteller die DPS-Instanz mit einzelnen Registrierungen und Registrierungsgruppen vor, die gültige Geräte identifizieren und deren Bereitstellung definieren.
Nachdem das Gerät und die Cloud für die Bereitstellung eingerichtet wurden, werden automatisch folgende Schritte gestartet, sobald das Gerät zum ersten Mal eingeschaltet wird:
- Nachdem das Gerät zum ersten Mal eingeschaltet wurde, stellt es eine Verbindung mit dem DPS-Endpunkt her und präsentiert seine Authentifizierungsanmeldeinformationen.
- Die DPS-Instanz überprüft die Identität des Geräts anhand der Registrierungsliste. Nachdem die Geräteidentität überprüft wurde, weist DPS das Gerät einem IoT-Hub zu und registriert es beim Hub.
- Die DPS-Instanz empfängt die Geräte-ID und die Registrierungsinformationen vom zugewiesenen Hub und gibt sie an das Gerät zurück.
- Das Gerät verwendet die Registrierungsinformationen, um eine direkte Verbindung mit dem zugewiesenen IoT-Hub herzustellen und sich zu authentifizieren.
- Das Gerät und der IoT-Hub beginnen mit der direkten Kommunikation. Die DPS-Instanz hat keine weitere Funktion als Vermittler, es sei denn, das Gerät muss neu bereitgestellt werden.
Wann sollte der Device Provisioning-Dienst verwendet werden?
DPS ist in vielen Bereitstellungsszenarien eine hervorragende Wahl, um Geräte mit IoT Hub zu verbinden für IoT Hub zu konfigurieren. Beispiele wären etwa:
- Bereitstellung ohne manuelles Eingreifen für eine einzelne IoT-Lösung ohne werkseitige Hartcodierung von IoT Hub-Verbindungsinformationen (Anfangssetup)
- Hubübergreifender Lastenausgleich für Geräte
- Herstellen der Verbindung von Geräten mit der IoT-Lösung ihrer Besitzer auf Basis der Verkaufstransaktionsdaten (Mehrinstanzenfähigkeit)
- Herstellen der Verbindung von Geräten mit einer bestimmten IoT-Lösung abhängig vom Anwendungsfall (Lösungsisolation)
- Herstellen der Verbindung eines Geräts mit IoT Hub mit der geringsten Wartezeit (Geo-Sharding)
- Erneute Bereitstellung basierend auf einer Änderung im Gerät
- Wechseln der Schlüssel, die vom Gerät verwendet werden, um eine Verbindung mit IoT Hub herzustellen (wenn keine X. 509-Zertifikate verwendet werden, um Verbindungen herstellen)
Die Bereitstellung geschachtelter Edgegeräte (Hierarchien mit über- und untergeordneten Elementen) wird derzeit von DPS nicht unterstützt.
Bereitstellung
Es gibt zwei Schritte, die vor einer Gerätebereitstellung mit DPS erfolgen:
- Der Fertigungsschritt, in dem das Gerät werkseitig erstellt und vorbereitet wird, und
- Der Cloudeinrichtungsschritt, in dem der Device Provisioning-Dienst für die automatisierte Bereitstellung konfiguriert wird.
Beide Schritte können nahtlos in bestehende Fertigungs- und Bereitstellungsprozesse eingefügt werden. DPS vereinfacht sogar einige Bereitstellungsprozesse, die mit manuellen Schritten verbunden sind, um Verbindungsinformationen auf das Gerät zu übertragen.
Fertigungsschritt
Dieser Schritt umfasst alles, was in der Fertigung geschieht. An diesem Schritt sind Hardwareentwickler und -hersteller, Integrator und/oder Endhersteller des Geräts beteiligt. Dieser Schritt betrifft das Erstellen der Hardware selbst.
DPS fügt dem Fertigungsprozess keinen neuen Schritt hinzu, sondern wird vielmehr in den vorhandenen Schritt eingebunden, mit dem die grundlegende Software und (im Idealfall) das Hardwaresicherheitsmodul (HSM) auf dem Gerät installiert werden. Statt dass in diesem Schritt eine Geräte-ID erstellt wird, wird das Gerät mit den Bereitstellungsdienstinformationen programmiert, sodass es den Bereitstellungsdienst aufrufen kann, um beim Einschalten seine Verbindungsinformationen/IoT-Lösungszuweisung zu erhalten.
Auch in diesem Schritt liefert der Hersteller dem Bereitsteller/Bediener des Geräts Indentifikationsschlüsselinformationen. Die Angabe dieser Informationen ist möglicherweise einfach nur die Bestätigung, dass alle Geräte über ein X.509-Zertifikat verfügen, das aus einem vom Gerätebereitsteller/-bediener bereitgestellten Signaturzertifikat generiert wurde, kann jedoch auch komplexer sein und das Extrahieren des öffentlichen Teils eines TPM-Endorsement Keys aus jedem TPM-Gerät beinhalten. Viele Siliziumhersteller bieten diese Dienste an.
Cloudeinrichtungsschritt
In diesem Schritt wird die Cloud für die ordnungsgemäße automatische Bereitstellung konfiguriert. Im Allgemeinen sind zwei Arten von Benutzern am Cloudeinrichtungsschritt beteiligt: eine Person (ein Gerätebediener), die weiß, wie Geräte erstmalig eingerichtet werden müssen, und eine andere Person (ein Lösungsoperator), die weiß, wie Geräte auf die IoT Hubs aufgeteilt werden sollen.
Es gibt eine einmalige Ersteinrichtung des Bereitstellungsdienstes, um die sich in der Regel der Lösungsbetreiber kümmert. Sobald der Bereitstellungsdienst konfiguriert ist, muss er nicht mehr geändert werden, solange sich der Anwendungsfall nicht ändert.
Wenn der Dienst für die automatische Bereitstellung konfiguriert ist, muss er auf das Registrieren von Geräten vorbereitet werden. Dieser Schritt wird vom Gerätebediener ausgeführt. Er ist mit der gewünschten Konfiguration der Geräte vertraut und sogt dafür, dass der Bereitstellungsdienst ordnungsgemäß die Identität des Geräts nachweisen kann. Die Gerätebediener übernimmt die Indentifikationsschlüsselinformationen vom Hersteller und fügt sie der Registrierungsliste hinzu. Die Registrierungsliste kann später aktualisiert werden, indem neue Einträge hinzugefügt oder vorhandene Einträge mit den neuesten Informationen zu den Geräten aktualisiert werden.
Registrierung und Bereitstellung
Bereitstellung kann abhängig von der Branche, wo der Begriff verwendet wird, verschiedene Bedeutungen haben. Im Kontext der Bereitstellung von IoT-Geräten für ihre Cloudlösung ist sie ein aus zwei Teilen bestehender Prozess:
- Im ersten Teil wird durch Registrieren des Geräts eine erstmalige Verbindung des Geräts mit der IoT-Lösung hergestellt.
- Im zweiten Schritt wird die richtige Konfiguration des Geräts basierend auf den spezifischen Anforderungen der Lösung, für die es registriert wurde, angewendet.
Nach Ausführung dieser beiden Schritte kann das Gerät als vollständig bereitgestellt bezeichnet werden. Einige Clouddienste ermöglichen nur den ersten Schritt des Bereitstellungsvorgangs, das Registrieren von Geräten beim Endpunkt der IoT-Lösung, aber nicht die Erstkonfiguration. DPS automatisiert beide Schritte für eine nahtlose Bereitstellung des Geräts.
Features des Device Provisioning-Diensts
Dank zahlreicher Features eignet sich DPS perfekt für die Bereitstellung von Geräten.
- Unterstützung des sicheren Nachweises für Identitäten auf X.509- und TPM-Basis.
- Eine Registrierungsliste mit der vollständigen Aufzeichnung von Geräten/Gerätegruppen, die sich zu einem beliebigen Zeitpunkt registrieren könnten. Die Registrierungsliste enthält Informationen zu der gewünschten Konfiguration des Geräts, sobald es registriert ist, und sie kann jederzeit aktualisiert werden.
- Mehrere Zuordnungsrichtlinien, um die DPS-basierte Zuweisung von Geräten zu IoT-Hubs für Ihre Szenarien zu steuern: Kürzeste Wartezeit, gleichmäßig gewichtete Verteilung (Standard) und statische Konfiguration. Wartezeit wird mithilfe der gleichen Methode ermittelt wie bei Traffic Manager. Die benutzerdefinierte Zuordnung, mit der Sie Ihre eigenen Zuordnungsrichtlinien über in Azure Functions gehostete Webhooks implementieren können, wird ebenfalls unterstützt.
- Überwachungs- und Diagnoseprotokolle, um sicherzustellen, dass alles ordnungsgemäß funktioniert
- Unterstützung für mehrere Hubs, sodass Device Provisioning Service (DPS) Geräte mehreren IoT Hubs zuweisen kann. DPS kann über mehrere Azure-Abonnements hinweg mit Hubs kommunizieren.
- Regionsübergreifende Unterstützung, um DPS das Zuweisen von Geräten zu IoT-Hubs in anderen Regionen zu ermöglichen.
- Mit der Verschlüsselung für ruhende Daten können Daten in DPS auf transparente Weise mit der 256-Bit-AES-Verschlüsselung – einer der stärksten verfügbaren Blockchiffren – ver- und entschlüsselt werden. Die Verschlüsselung ist darüber hinaus mit dem FIPS 140-2-Standard konform.
Weitere Informationen zu den mit der Gerätebereitstellung verbundenen Konzepten und Features finden Sie im Artikel Terminologie: Azure IoT Hub Device Provisioning Service (DPS) sowie in den anderen konzeptionellen Artikeln im gleichen Abschnitt.
Plattformübergreifende Unterstützung
DPS kann wie alle Azure IoT-Dienste plattformübergreifend mit verschiedenen Betriebssystemen verwendet werden. Azure bietet Open-Source-SDKs in verschiedenen Programmiersprachen, um das Herstellen von Geräteverbindungen sowie die Dienstverwaltung zu vereinfachen. DPS unterstützt die folgenden Protokolle zum Verbinden von Geräten:
- HTTPS
- AMQP
- AMQP über Websockets
- MQTT
- MQTT über Websockets
Für Dienstvorgänge unterstützt DPS nur HTTPS-Verbindungen.
Regions
DPS steht in vielen Regionen zur Verfügung. Die Liste der unterstützten Regionen für alle Dienste ist in Azure Regions verfügbar. Die Verfügbarkeit des Device Provisioning-Diensts können Sie auf der Seite Azure-Status überprüfen.
Für Resilienz und Zuverlässigkeit empfehlen wir, eine der Bereiche bereitzustellen, die Verfügbarkeitszonen unterstützen.
Überlegungen zur Datenresidenz
Der Gerätebereitstellungsdienst speichert Kundendaten. Standardmäßig werden Kundendaten in eine sekundäre Region repliziert, um Notfallwiederherstellungsszenarien zu unterstützen. Bei Bereitstellungen in „Asien, Südosten“ und „Brasilien, Süden2 können Kunden ihre Daten nur innerhalb dieser Region beibehalten, indem sie die Notfallwiederherstellung deaktivieren. Weitere Informationen finden Sie unter Regionsübergreifende Replikation in Azure.
DPS verwendet den gleichen Endpunkt für die Gerätebereitstellung für alle Bereitstellungsdienstinstanzen und führt den Lastenausgleich des Datenverkehrs für den nächstgelegenen verfügbaren Dienstendpunkt durch. Daher können Authentifizierungsgeheimnisse vorübergehend außerhalb der Region übertragen werden, in der die DPS-Instanz ursprünglich erstellt wurde. Sobald das Gerät verbunden ist, werden die Gerätedaten jedoch direkt in die ursprüngliche Region der DPS-Instanz übertragen. Um sicherzustellen, dass Ihre Daten die ursprüngliche oder sekundäre Region nicht verlassen, verwenden Sie einen privaten Endpunkt. Informationen zum Einrichten privater Endpunkte finden Sie unter DPS-Unterstützung für virtuelle Netzwerke.
Kontingente und Grenzwerte
Für jedes Azure-Abonnement gelten standardmäßig bestimmte Kontingentgrenzen, die den Umfang Ihrer IoT-Lösung beeinträchtigen könnten. Die aktuelle Grenze sind 10 Gerätebereitstellungsdienste pro Abonnement.
Weitere Informationen zu Kontingentgrenzen finden Sie unter Einschränkungen für Azure-Abonnements und Dienste, Kontingente und Einschränkungen.
Die folgende Tabelle enthält die Grenzwerte, die für Ressourcen des Azure IoT Hub Device Provisioning-Diensts gelten.
Resource | Begrenzung | Anpassbar? |
---|---|---|
Maximale Anzahl von Gerätebereitstellungsdiensten pro Azure-Abonnement | 10 | No |
Maximale Anzahl von Registrierungen (Registrations) | 1\.000.000 | No |
Maximale Anzahl individueller Registrierungen | 1\.000.000 | No |
Maximale Anzahl von Registrierungsgruppen (X.509-Zertifikat) | 100 | No |
Maximale Anzahl von Registrierungsgruppen (symmetrischer Schlüssel) | 100 | Nein |
Maximale Anzahl von Zertifizierungsstellen | 25 | No |
Maximale Anzahl der verknüpften IoT-Hubs | 50 | Nein |
Maximale Nachrichtengröße | 96 KB | Nein |
Tipp
Wenn der harte Grenzwert für Registrierungsgruppen mit symmetrischem Schlüssel ein Blockierproblem ist, wird empfohlen, individuelle Registrierungen als Problemumgehung zu verwenden.
Für den Device Provisioning-Dienst gelten die folgenden Ratenbegrenzungen.
Rate | Wert pro Einheit | Anpassbar? |
---|---|---|
Vorgänge | 1.000/Min./Dienst | No |
Geräteregistrierungen | 1.000/Min./Dienst | No |
Abrufvorgang für Geräte | 5/10 Sekunden/Gerät | Nein |
Abrechenbare Dienstvorgänge und Preise
Jeder API-Aufruf für DPS ist als ein Vorgang abrechenbar. Dies schließt alle Dienst-APIs und die Geräteregistrierungs-API ein.
Die folgenden Tabellen zeigen den aktuellen abrechenbaren Status für jeden API-Vorgang des DPS-Diensts. Wenn Sie sich zu den Preisen für DPS informieren möchten, wählen Sie oben auf der Seite Azure IoT Hub – Preise die Tabelle Preise aus. Wählen Sie dann die Registerkarte IoT Hub Device Provisioning Service sowie die Währung und Region für Ihren Dienst aus.
API | Vorgang | Abrechenbar? |
---|---|---|
Geräte-API | Ermitteln des Geräteregistrierungsstatus | No |
Geräte-API | Ermitteln des Vorgangsstatus | No |
Geräte-API | Register Device | Yes |
DPS-Dienst-API (Registrierungsstatus) | Löschen | Yes |
DPS-Dienst-API (Registrierungsstatus) | Get | Yes |
DPS-Dienst-API (Registrierungsstatus) | Abfrage | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Erstellen oder Aktualisieren | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Löschen | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Get | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Abrufen des Nachweismechanismus | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Abfrage | Yes |
DPS-Dienst-API (Registrierungsgruppe) | Ausführen eines Massenvorgangs | Yes |
DPS-Dienst-API (individuelle Registrierung) | Erstellen oder Aktualisieren | Yes |
DPS-Dienst-API (individuelle Registrierung) | Löschen | Yes |
DPS-Dienst-API (individuelle Registrierung) | Get | Yes |
DPS-Dienst-API (individuelle Registrierung) | Abrufen des Nachweismechanismus | Yes |
DPS-Dienst-API (individuelle Registrierung) | Abfrage | Yes |
DPS-Dienst-API (individuelle Registrierung) | Ausführen eines Massenvorgangs | Yes |
DPS-Zertifikat-API | Erstellen oder Aktualisieren | No |
DPS-Zertifikat-API | Löschen | No |
DPS-Zertifikat-API | Generieren eines Prüfcodes | No |
DPS-Zertifikat-API | Get | No |
DPS-Zertifikat-API | Liste | No |
DPS-Zertifikat-API | Überprüfen des Zertifikats | No |
IoT DPS-Ressourcen-API | Überprüfen der Verfügbarkeit des Provisioning Service-Namens | No |
IoT DPS-Ressourcen-API | Erstellen oder Aktualisieren | No |
IoT DPS-Ressourcen-API | Löschen | No |
IoT DPS-Ressourcen-API | Get | No |
IoT DPS-Ressourcen-API | Hiermit rufen Sie das Vorgangsergebnis ab. | No |
IoT DPS-Ressourcen-API | Nach Ressourcengruppe gruppieren | No |
IoT DPS-Ressourcen-API | Nach Abonnement auflisten | No |
IoT DPS-Ressourcen-API | Auflisten nach Schlüsseln | No |
IoT DPS-Ressourcen-API | Auflisten von Schlüsseln für den Schlüsselnamen | No |
IoT DPS-Ressourcen-API | Auflisten gültiger SKUs | No |
IoT DPS-Ressourcen-API | Aktualisieren | No |
Verwandte Azure-Komponenten
DPS automatisiert die Gerätebereitstellung mit Azure IoT Hub. Erfahren Sie mehr über IoT Hub.
Hinweis
Die Bereitstellung von geschachtelten Edgegeräten (über- und untergeordnete Hierarchien) wird von DPS derzeit nicht unterstützt.
IoT Central-Anwendungen verwenden eine interne DPS-Instanz, um Geräteverbindungen zu verwalten. Weitere Informationen finden Sie unter Verbinden eines Geräts mit IoT Central.
Nächste Schritte
Sie haben jetzt einen Überblick über die Bereitstellung von IoT-Geräten in Azure erhalten. Der nächste Schritt ist, dass Sie ein End-to-End-IoT-Szenario testen.
Einrichten von IoT Hub Device Provisioning Service über das Azure-Portal