Terminologie: Azure IoT Hub Device Provisioning Service (DPS)

Der IoT Hub Device Provisioning-Dienst ist ein Hilfsdienst für IoT Hub, mit dem Sie Geräte ohne manuelles Eingreifen auf einem angegebenen IoT Hub konfigurieren können. Mit DPS können Sie Millionen von Geräten auf sichere und skalierbare Weise bereitstellen.

Die Gerätebereitstellung ist ein zweiteiliger Prozess. Im ersten Schritt wird durch Registrieren des Geräts die Erstverbindung zwischen dem Gerät und der IoT-Lösung hergestellt. Im zweiten Schritt wird basierend auf den spezifischen Anforderungen der Lösung die geeignete Konfiguration auf das Gerät angewendet. Nach Ausführung beider Schritte ist das Gerät vollständig bereitgestellt. Mit dem Device Provisioning-Dienst werden beide Schritte automatisiert, sodass das Gerät nahtlos bereitgestellt wird.

Dieser Artikel bietet eine Übersicht über die Bereitstellungskonzepte, die sich am besten zur Verwaltung des Diensts eignen. Dieser Artikel ist besonders für Personen relevant, die am Schritt zum Einrichten der Cloud bei der Vorbereitung von Geräten für die Bereitstellung beteiligt sind.

Endpunkt für Dienstvorgänge

Der Endpunkt für Dienstvorgänge ist der Endpunkt zum Verwalten der Diensteinstellungen und der Registrierungsliste. Dieser Endpunkt wird nur vom Dienstadministrator verwendet. Er wird nicht von Geräten verwendet.

Endpunkt zur Gerätebereitstellung

Der Endpunkt zur Gerätebereitstellung ist der einzelne Endpunkt, den alle Geräte für die automatische Bereitstellung verwenden. Die URL ist für alle Bereitstellungsdienstinstanzen identisch, sodass bei neuen Verbindungsinformationen in Supply Chain-Szenarien nicht die Firmware von Geräten aktualisiert werden muss. Durch den ID-Bereich wird die Mandantenisolation sichergestellt.

Verknüpfte IoT Hubs

Der Device Provisioning-Dienst kann nur Geräte in IoT Hubs bereitstellen, die mit dem Dienst verknüpft wurden. Durch Verknüpfen eines IoT Hub mit einer Instanz des Device Provisioning-Diensts erhält der Dienst Lese-/Schreibberechtigungen für die Geräteregistrierung des IoT Hubs. Durch die Verknüpfung kann der Device Provisioning-Dienst eine Geräte-ID registrieren und die Erstkonfiguration im Gerätezwilling festlegen. Verknüpfte IoT Hubs können sich in allen Azure-Regionen befinden. Sie können Hubs in anderen Abonnements mit Ihrem Bereitstellungsdienst verknüpfen.

Zuordnungsrichtlinie

Die Einstellung auf Dienstebene, mit der festgelegt wird, wie der Device Provisioning-Dienst einem IoT Hub Geräte zuweist. Es gibt vier unterstützte Zuordnungsrichtlinien:

  • Gleichmäßig gewichtete Verteilung: Bei verknüpften IoT Hubs ist die Wahrscheinlichkeit gleich hoch, dass Geräte für sie bereitgestellt werden. Dies ist die Standardeinstellung. Wenn Sie nur für eine IoT Hub-Instanz Geräte bereitstellen, können Sie diese Einstellung beibehalten.

  • Niedrigste Latenz: Geräte werden für einen IoT Hub mit der geringsten Latenz für das Gerät bereitgestellt. Wenn mehrere verknüpfte IoT Hubs die gleiche geringste Latenz aufweisen, verteilt der Bereitstellungsdienst die Geräte auf diese Hubs.

  • Statische Konfiguration über die Registrierungsliste: Die Angabe des gewünschten IoT Hub in der Registrierungsliste hat gegenüber der Zuordnungsrichtlinie auf Dienstebene Vorrang.

  • Benutzerdefiniert (Azure-Funktion verwenden): Mit einer benutzerdefinierten Zuweisungsrichtlinie können Sie genauer steuern, wie Geräte einem IoT-Hub zugewiesen werden. Dazu werden Geräte mithilfe von benutzerdefiniertem Code in einer Azure-Funktion einem IoT-Hub zugewiesen. DPS ruft Ihren Azure Functions-Code auf und stellt Ihrem Code alle relevanten Informationen zum Gerät und zur Registrierung bereit. Der Funktionscode wird ausgeführt und gibt die IoT Hub-Informationen für die Bereitstellung des Geräts zurück.

Anmeldung

Bei einer Registrierung handelt es sich um den Datensatz der Geräte oder Gerätegruppen, die mittels automatischer Bereitstellung registriert werden können. Der Registrierungsdatensatz enthält unter anderem folgende Informationen zum Gerät bzw. zur Gerätegruppe:

  • Den verwendeten Nachweismechanismus des Geräts
  • Die optionale anfängliche gewünschte Konfiguration
  • Die gewünschte IoT Hub-Instanz
  • Die gewünschte Geräte-ID

Im Device Provisioning-Dienst werden zwei Registrierungsarten unterstützt:

Registrierungsgruppe

Eine Registrierungsgruppe stellt eine Gruppe von Geräten dar, die einen bestimmten Nachweismechanismus gemeinsam nutzen. Registrierungsgruppen unterstützen das X.509-Zertifikat oder den Nachweis des symmetrischen Schlüssels. Geräte in einer X.509-Registrierungsgruppe stellen X.509-Zertifikate bereit, die von der gleichen Stamm- oder Zwischenzertifizierungsstelle signiert wurden. Der allgemeine Name (Common Name, CN) des Endentitätszertifikats der einzelnen Geräte wird zur Registrierungs-ID für die jeweiligen Geräte. Geräte in einer Registrierungsgruppe mit symmetrischem Schlüssel stellen SAS-Token bereit, die vom symmetrischen Schlüssel der Gruppe abgeleitet werden.

Der Name der Registrierungsgruppe sowie die Registrierungs-IDs, die von Geräten angezeigt werden, müssen Zeichenfolgen sein, bei denen nicht zwischen Groß-/Kleinbuchstaben unterschieden wird und die aus alphanumerischen Zeichen und den folgenden Sonderzeichen bestehen: '-', '.', '_', ':'. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-') sein. Der Name kann bis zu 128 Zeichen lang sein. In symmetrischen Schlüsselregistrierungsgruppen kann die Registrierungs-IDs, die von Geräten präsentiert werden, bis zu 128 Zeichen lang sein. In X.509-Registrierungsgruppen sind jedoch die maximale Länge des allgemeinen Betreffs in einem X.509-Zertifikat 64 Zeichen, die Registrierungs-IDs sind auf 64 Zeichen beschränkt.

Bei Geräten in einer Registrierungsgruppe wird die Registrierungs-ID auch als Geräte-ID verwendet, die für IoT Hub registriert ist.

Tipp

Es empfiehlt sich, eine Registrierungsgruppe für eine große Anzahl von Geräten, die eine gewünschte Erstkonfiguration gemeinsam nutzen, oder für Geräte zu verwenden, die alle demselben Mandanten zugeordnet sind.

Individuelle Registrierung

Eine individuelle Registrierung ist ein Eintrag für ein einzelnes Gerät, das registriert werden kann. Individuelle Registrierungen verwenden entweder untergeordnete X.509-Zertifikate oder SAS-Token (in einem physischen oder virtuellen TPM) als Nachweismechanismen. Bei der Registrierungs-ID in einer individuellen Registrierung handelt es sich um eine Zeichenfolge alphanumerischer Zeichen ohne Beachtung der Groß-/Kleinschreibung plus diese Sonderzeichen: '-', '.', '_', ':'. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-') sein. DPS unterstützt Registrierungs-IDs, die bis zu 128 Zeichen lang sind.

Bei individuellen X.509-Registrierungen wird der allgemeine Name (Common Name, CN) des Zertifikats zur Registrierungs-ID, sodass der allgemeine Name dem Format der Registrierungs-ID-Zeichenfolge entsprechen muss. Der allgemeine Betreffname verfügt über eine maximale Länge von 64 Zeichen, sodass die Registrierungs-ID auf 64 Zeichen für X.509-Registrierungen beschränkt ist.

Bei individuellen Registrierungen wird möglicherweise die gewünschte IoT Hub-Geräte-ID verwendet, die im Registrierungseintrag angegeben ist. Wenn keine ID nicht angegeben wird, wird die Registrierungs-ID als Geräte-ID verwendet, die für IoT Hub registriert ist.

Sie können die Bereitstellung eines bestimmten Geräts über Device Provisioning Service vorübergehend oder dauerhaft zulassen oder blockieren, indem Sie den Bereitstellungsstatus einer Registrierung steuern.

Tipp

Individuelle Registrierungen sollten für Geräte verwendet werden, die besondere Erstkonfigurationen erfordern, oder für Geräte, die sich nur mittels SAS-Token per TPM-Nachweis authentifizieren können.

Nachweismechanismus

Ein Nachweismechanismus ist eine Methode zum Überprüfen der Identität eines Geräts. Er wird für einen Registrierungseintrag konfiguriert und informiert den Bereitstellungsdienst darüber, welche Methode verwendet werden soll, wenn die Identität eines Geräts während der Registrierung überprüft wird.

Hinweis

IoT Hub verwendet das „Authentifizierungsschema“ für ein ähnliches Konzept in diesem Dienst.

Der Device Provisioning-Dienst unterstützt die folgenden Arten von Nachweisen:

  • X.509-Zertifikate – basierend auf dem Standardauthentifizierungsablauf für X.509-Zertifikate. Weitere Informationen finden Sie unter X.509-Nachweis.
  • Trusted Platform Module (TPM) – basierend auf einer Nonce-Abfrage mit dem TPM-Standard für Schlüssel zum Bereitstellen eines signierten SAS-Tokens (Shared Access Signature). Dies erfordert keine physische TPM-Instanz auf dem Gerät. Der Dienst erwartet für den Nachweis jedoch den Endorsement Key gemäß TPM-Spezifikation. Weitere Informationen finden Sie unter TPM-Nachweis.
  • Symmetrischer Schlüssel basierend auf Shared Access Signature (SAS)-Sicherheitstokens, die eine Hashsignatur und ein eingebettetes Ablaufdatum haben. Weitere Informationen finden Sie unter Symmetric key attestation (Nachweis des symmetrischen Schlüssels).

Hardwaresicherheitsmodul

Das Hardwaresicherheitsmodul (HSM) dient der sicheren, hardwarebasierten Speicherung von Gerätegeheimnissen und gilt als die sicherste Form der Geheimnisspeicherung. Sowohl X.509-Zertifikate als auch SAS-Token können im HSM gespeichert werden. HSMs können mit beiden Nachweismechanismen verwendet werden, die der Bereitstellungsdienst unterstützt.

Tipp

Es wird dringend empfohlen, ein HSM mit Geräten zu verwenden, um Geheimnisse sicher auf Ihren Geräten zu speichern.

Gerätegeheimnisse können auch in Software (Arbeitsspeicher) gespeichert werden. Dies gilt jedoch im Vergleich zu einem HSM als die weniger sichere Speicherform.

ID-Bereich

Der ID-Bereich wird einem Device Provisioning-Dienst zugewiesen, wenn er vom Benutzer erstellt wird. Er dient der Identifizierung des jeweiligen Bereitstellungsdiensts, über den sich das Gerät registriert. Der ID-Bereich wird vom Dienst generiert. Er kann nicht geändert werden und stellt Eindeutigkeit sicher.

Hinweis

Eindeutigkeit ist wichtig für lang andauernde Bereitstellungsvorgänge und Zusammenführungs- sowie Kaufszenarien.

Registrierungsdatensatz

Ein Registrierungsdatensatz ist der Datensatz eines Geräts, das über Device Provisioning Service erfolgreich in einer IoT Hub-Instanz registriert/bereitgestellt wurde. Registrierungsdatensätze werden automatisch erstellt. Sie können gelöscht, jedoch nicht aktualisiert werden.

Registrierungs-ID

Die Registrierungs-ID wird zur eindeutigen Identifizierung einer Geräteregistrierung in DPS verwendet. Die Registrierungs-ID muss im ID-Bereich des Bereitstellungsdiensts eindeutig sein. Jedes Gerät benötigt eine Registrierungs-ID. Die Registrierungs-ID ist eine von der Groß- und Kleinschreibung unabhängige Zeichenfolge aus alphanumerischen Zeichen und Sonderzeichen: '-', '.', '_', ':'. Das letzte Zeichen muss alphanumerisch oder ein Bindestrich ('-') sein. DPS unterstützt Registrierungs-IDs, die bis zu 128 Zeichen lang sind.

  • Bei TPM wird die Registrierungs-ID durch das TPM selbst bereitgestellt.
  • Bei X.509-basierten Nachweisen wird die Registrierungs-ID auf den allgemeinen Namen (Common Name, CN) des Gerätezertifikats festgelegt. Daher muss der allgemeine Name dem Format der Registrierungs-ID-Zeichenfolge entsprechen. Die Registrierungs-ID ist jedoch auf 64 Zeichen beschränkt, da dies die maximale Länge des allgemeinen Antragstellernamens in einem X.509-Zertifikat ist.

Geräte-ID

Die Geräte-ID ist die ID, die in IoT Hub angezeigt wird. Die gewünschte Geräte-ID kann im Registrierungseintrag festgelegt werden, eine Festlegung ist aber nicht zwingend. Das Festlegen der gewünschten Geräte-ID wird nur in Einzelregistrierungen unterstützt. Wenn in der Registrierungsliste keine gewünschte Geräte-ID angegeben wurde, wird bei der Registrierung des Geräts die Registrierungs-ID als die Geräte-ID verwendet. Erfahren Sie mehr zu Geräte-IDs in IoT Hub.

Operationen (Operations)

Vorgänge stellen die Abrechnungseinheit des Device Provisioning-Diensts dar. Ein Vorgang entspricht der erfolgreichen Ausführung einer Anweisung für den Dienst. Vorgänge umfassen Registrierungen und erneute Registrierungen von Geräten sowie dienstseitige Änderungen wie das Hinzufügen und Aktualisieren von Registrierungslisteneinträgen.