Wat is Azure IoT Hub Device Provisioning Service?
IoT Hub Device Provisioning Service (DPS) is een helper-service die zero-touch mogelijk maakt, het Just-In-Time inrichten naar de juiste IoT Hub zonder tussenkomst van de gebruiker. Met DPS kunnen miljoenen apparaten op een veilige en schaalbare manier worden ingericht. Veel van de handmatige stappen die gebruikelijk zijn bij het inrichten van apparaten zijn geautomatiseerd met DPS om zo het implementeren van IoT-apparaten te versnellen en de kans op handmatige fouten te verkleinen.
Hoe Device Provisioning Service werkt
In het volgende diagram wordt beschreven wat er achter de schermen gebeurt om een apparaat in te richten met DPS.
Voordat de apparaatinrichtingsstroom begint, zijn er twee handmatige stappen om het volgende voor te bereiden:
- Aan de apparaatzijde bereidt de fabrikant van het apparaat het apparaat voor op inrichting door het vooraf te configureren met de verificatiereferenties en de toegewezen Device Provisioning Service-id en het eindpunt.
- Aan de cloudzijde bereidt u of de fabrikant van het apparaat het Device Provisioning Service-exemplaar voor met afzonderlijke inschrijvingen en inschrijvingsgroepen die geldige apparaten identificeren en definiëren hoe ze moeten worden ingericht.
Zodra het apparaat en de cloud zijn ingesteld voor inrichting, worden de volgende stappen automatisch gestart zodra het apparaat voor het eerst wordt ingeschakeld:
- Het apparaat wordt voor het eerst ingeschakeld en maakt vervolgens verbinding met het DPS-eindpunt en geeft deze verificatiereferenties weer.
- Het DPS-exemplaar controleert de identiteit van het apparaat op basis van de inschrijvingslijst. Zodra de apparaat-id is geverifieerd, wijst DPS het apparaat toe aan een IoT-hub en registreert deze in de hub.
- De DPS-instantie ontvangt de apparaat-id en registratiegegevens van de toegewezen hub en geeft die informatie weer door aan het apparaat.
- Het apparaat gebruikt de registratiegegevens om rechtstreeks verbinding te maken met de toegewezen IoT-hub en te verifiëren.
- Het apparaat en de IoT-hub communiceren rechtstreeks. De DPS-instantie heeft geen verdere rol als intermediair, tenzij het apparaat opnieuw moet worden ingericht.
Wanneer Device Provisioning Service gebruiken
Er zijn veel scenario's waarin DPS een uitstekende keuze is voor het verbinden en configureren van apparaten met IoT Hub, zoals:
- Apparaat zonder tussenkomst van gebruiker inrichten voor een afzonderlijke IoT-oplossing zonder dat hiervoor in de fabriek (eerste installatie) hardcoding van verbindingsgegevens voor IoT-Hub nodig is
- Taakverdeling van apparaten over meerdere hubs
- Apparaten verbinden met de IoT-oplossing van de eigenaar op basis van verkooptransactiegegevens (multitenancy)
- Apparaten verbinden met een bepaalde IoT-oplossing, afhankelijk van het gebruiksscenario (isolatie van oplossing)
- Apparaat met de laagst mogelijke latentie (geo-sharding) verbinden met de IoT-hub
- Herinrichten op basis van een wijziging op het apparaat
- Aanpassen van de sleutels die door het apparaat worden gebruikt om verbinding te maken met IoT Hub (als er geen verbinding wordt gemaakt met behulp van X.509-certificaten)
Het inrichten van geneste IoT Edge-apparaten (bovenliggende/onderliggende hiërarchieën) wordt momenteel niet ondersteund door DPS.
Inrichtingsproces
Er zijn twee stappen die plaatsvinden voordat een apparaat wordt ingericht met DPS:
- De productiestap waarin het apparaat wordt gemaakt en voorbereid in de fabriek, en
- De configuratiestap voor de cloud waarin Device Provisioning Service wordt geconfigureerd voor automatisch inrichten.
Beide stappen kunnen worden opgenomen in bestaande productie- en implementatieprocessen. DPS vereenvoudigt zelfs enkele implementatieprocessen die handmatig werk vereisen om verbindingsgegevens op het apparaat te krijgen.
Productiestap
Deze stap omvat alles wat te maken heeft met de productielijn. Voorbeelden van rollen die zijn betrokken bij deze stap zijn siliciumontwerper, siliciumfabrikant, integrator en/of de eindfabrikant van het apparaat. Deze stap gaat om het maken van de hardware zelf.
DPS introduceert geen nieuwe stap in het productieproces; In plaats daarvan wordt deze gekoppeld aan de bestaande stap die de eerste software installeert en (idealiter) de hardwarebeveiligingsmodule (HSM) op het apparaat installeert. In plaats van in deze stap een apparaat-id te maken, wordt het apparaat geprogrammeerd met de gegevens van de inrichtingsservice, zodat deze de inrichtingsservice kan aanroepen om de verbindingsgegevens/ioT-oplossingstoewijzing op te halen wanneer het is ingeschakeld.
In deze stap verstrekt de fabrikant ook belangrijke identificatiegegevens aan de persoon die het apparaat implementeert/gebruikt (operator). Het verstrekken van die gegevens kan zo eenvoudig zijn als het bevestigen dat alle apparaten beschikken over een X.509-certificaat dat is gegenereerd op basis van een ondertekend certificaat dat is geleverd door de persoon die het apparaat implementeert/gebruikt, of zo ingewikkeld als het extraheren van het openbare deel van een TPM-goedkeuringssleutel van elk TPM-apparaat. Veel siliciumfabrikanten bieden deze diensten aan.
Configuratiestap voor de cloud
Deze stap betreft het configureren van de cloud voor een juiste automatische inrichting. In het algemeen er zijn twee typen gebruikers betrokken bij deze stap: iemand die weet hoe apparaten in eerste instantie moeten worden geconfigureerd (een operator van apparaten) en iemand anders die weet hoe apparaten moeten worden verdeeld tussen de IoT-hubs (een operator van oplossingen).
Er is een eenmalige eerste installatie van de inrichtingsservice, die de oplossingsoperator meestal verwerkt. Zodra de inrichtingsservice is geconfigureerd, hoeft deze niet te worden gewijzigd, tenzij de use-case verandert.
Nadat de service is geconfigureerd voor automatische inrichting, moet deze worden voorbereid om apparaten in te schrijven. Deze stap wordt uitgevoerd door de apparaatoperator, die de gewenste configuratie van de apparaten kent en ervoor zorgt dat de inrichtingsservice correct kan worden bevestigd aan de identiteit van een apparaat. De operator van het apparaat neemt de belangrijkste identificatiegegevens van de fabrikant en voegt deze toe aan de lijst met registraties. De lijst met registraties kan nog worden gewijzigd als er nieuwe items worden toegevoegd of bestaande vermeldingen worden bijgewerkt met de meest recente informatie over de apparaten.
Registratie en inrichting
Inrichting kan verschillende dingen betekenen, afhankelijk van de branche waarin de term wordt gebruikt. In de context van het inrichten van IoT-apparaten bij hun cloudoplossing bestaat het proces uit twee delen:
- Het eerste deel omvat het tot stand brengen van de eerste verbinding tussen het apparaat en de IoT-oplossing door het apparaat te registreren.
- Het tweede gedeelte bestaat uit het toepassen van de juiste configuratie op het apparaat op basis van de specifieke vereisten van de oplossing waarbij het apparaat is geregistreerd.
Als beide stappen zijn voltooid, kunnen we zeggen dat het apparaat volledig is ingericht. Sommige cloudservices bieden alleen de eerste stap van het inrichtingsproces, het registreren van apparaten bij het Eindpunt van de IoT-oplossing, maar bieden niet de eerste configuratie. DPS automatiseert beide stappen en biedt zo een naadloze ervaring voor de inrichting van het apparaat.
Functies van Device Provisioning Service
DPS bevat allerlei functies, waardoor de service ideaal is voor het inrichten van apparaten.
- Ondersteuning voor beveiligde attestation voor identiteiten op basis van zowel X.509 als TPM.
- Lijst van registraties met een volledig overzicht van de apparaten/groepen apparaten die op enige moment kunnen worden geregistreerd. De registratielijst bevat informatie over de gewenste configuratie van het apparaat als dit wordt geregistreerd en de lijst kan op elk gewenst moment worden bijgewerkt.
- Meerdere toewijzingsbeleidsregels om te bepalen hoe DPS apparaten toewijst aan IoT-hubs ter ondersteuning van uw scenario's: laagste latentie, gelijkmatig gewogen distributie (standaard) en statische configuratie. De latentie wordt bepaald met dezelfde methode als voor Traffic Manager. Aangepaste toewijzing, waarmee u uw eigen toewijzingsbeleid kunt implementeren via webhooks die worden gehost in Azure Functions, wordt ook ondersteund.
- Controle en logboekregistratie van diagnostische gegevens om ervoor te zorgen dat alles goed werkt.
- Ondersteuning voor meerdere hubs zorgt ervoor dat DPS apparaten kan toewijzen aan meer dan één IoT-hub. DPS kan communiceren met hubs binnen verschillende Azure-abonnementen.
- Ondersteuning voor meerdere regio's zorgt ervoor dat DPS apparaten kan toewijzen aan IoT-hubs in andere regio's.
- Versleuteling voor data-at-rest zorgt ervoor dat gegevens in DPS worden versleuteld en ontsleuteld met 256-bits AES-versleuteling, een zeer krachtige blokversleuteling die voldoet aan FIPS 140-2.
Meer informatie over de concepten en functies die betrokken zijn bij het inrichten van apparaten vindt u in het artikel over DPS-terminologie en de andere conceptuele artikelen in dezelfde sectie.
Ondersteuning voor meerdere platforms
Net als alle Azure IoT-services werkt DPS platformoverschrijdend met verschillende besturingssystemen. Azure biedt opensource-SDK's in verschillende talen om het verbinden van apparaten te vergemakkelijken en de service te beheren. DPS ondersteunt de volgende protocollen voor het verbinden van apparaten:
- HTTPS
- AMQP
- AMQP via WebSockets
- MQTT
- MQTT via WebSockets
DPS ondersteunt alleen HTTPS-verbindingen voor servicebewerkingen.
Regio's
DPS is in diverse regio's beschikbaar. De lijst met ondersteunde regio's voor alle services is beschikbaar in Azure-regio's. U kunt de beschikbaarheid van Device Provisioning Service controleren op de pagina Status van Azure.
Voor tolerantie en betrouwbaarheid raden we u aan om te implementeren in een van de regio's die ondersteuning bieden voor Beschikbaarheidszones.
Overwegingen voor gegevenslocatie
Device Provisioning Service slaat klantgegevens op. Klantgegevens worden standaard gerepliceerd naar een secundaire regio ter ondersteuning van scenario's voor herstel na noodgevallen. Voor implementaties in Zuidoost-Azië en Brazilië - zuid kunnen klanten ervoor kiezen om hun gegevens alleen binnen die regio te bewaren door herstel na noodgevallen uit te schakelen. Zie Replicatie tussen regio's in Azure voor meer informatie.
DPS gebruikt hetzelfde eindpunt voor apparaatinrichting voor alle exemplaren van de inrichtingsservice en voert verkeertaakverdeling uit naar het dichtstbijzijnde beschikbare service-eindpunt. Als gevolg hiervan kunnen verificatiegeheimen tijdelijk worden overgedragen buiten de regio waar de DPS-instantie in eerste instantie is gemaakt. Zodra het apparaat is verbonden, worden de apparaatgegevens echter rechtstreeks naar de oorspronkelijke regio van het DPS-exemplaar verzonden. Gebruik een privé-eindpunt om ervoor te zorgen dat uw gegevens de oorspronkelijke of secundaire regio niet verlaten. Zie DPS-ondersteuning voor virtuele netwerken voor meer informatie over het instellen van privé-eindpunten.
Quota en limieten
Voor elk Azure-abonnement gelden standaardquotalimieten. Deze limieten kunnen invloed hebben op het bereik van uw IoT-oplossing. De huidige limiet is 10 Device Provisioning Service-exemplaren per abonnement.
Zie Servicelimieten voor Azure-abonnementen voor meer informatie over quotumlimieten.
In de volgende tabel staan de limieten die van toepassing zijn op Azure IoT Hub Device Provisioning Service-resources.
Bron | Limiet | Aanpasbaar? |
---|---|---|
Maximaal aantal services voor apparaatinrichting per Azure-abonnement | 10 | Nee |
Maximaal aantal registraties | 1.000.000 | Nee |
Maximum aantal afzonderlijke inschrijvingen | 1.000.000 | Nee |
Maximum aantal inschrijvingsgroepen (X.509-certificaat) | 100 | Nee |
Maximum aantal inschrijvingsgroepen (symmetrische sleutel) | 100 | Nee |
Maximaal aantal CA's | 25 | Nee |
Maximaal aantal gekoppelde IoT-hubs | 50 | Nee |
Maximale berichtgrootte | 96 kB | Nee |
Tip
Als de vaste limiet voor symmetrische sleutelinschrijvingsgroepen een blokkeringsprobleem is, is het raadzaam om afzonderlijke inschrijvingen als tijdelijke oplossing te gebruiken.
Device Provisioning Service heeft de volgende frequentielimieten.
Prijs | Waarde per eenheid | Aanpasbaar? |
---|---|---|
Operations | 1.000/min/service | Nee |
Apparaatregistraties | 1.000/min/service | Nee |
Bewerking voor apparaatpolling | 5/10 sec/apparaat | Nee |
Factureerbare servicebewerkingen en prijzen
Elke API-aanroep op DPS kan als één bewerking worden gefactureerd. Dit omvat alle service-API's en de api voor apparaatregistratie.
In de onderstaande tabellen ziet u de huidige factureerbare status voor elke BEWERKING van de DPS-service-API. Als u meer wilt weten over prijzen voor DPS, selecteert u de prijstabel boven aan de pagina met prijzen van Azure IoT Hub . Selecteer vervolgens het tabblad IoT Hub Device Provisioning Service en de valuta en regio voor uw service.
API | Operation | Factureerbare? |
---|---|---|
Apparaat-API | Opzoeken van apparaatregistratiestatus | Nee |
Apparaat-API | Opzoeken van bewerkingsstatus | Nee |
Apparaat-API | Apparaat registreren | Ja |
DPS-service-API (registratiestatus) | Verwijderen | Ja |
DPS-service-API (registratiestatus) | Get | Ja |
DPS-service-API (registratiestatus) | Query | Ja |
DPS-service-API (inschrijvingsgroep) | Maken of bijwerken | Ja |
DPS-service-API (inschrijvingsgroep) | Verwijderen | Ja |
DPS-service-API (inschrijvingsgroep) | Get | Ja |
DPS-service-API (inschrijvingsgroep) | Attestation-mechanisme ophalen | Ja |
DPS-service-API (inschrijvingsgroep) | Query | Ja |
DPS-service-API (inschrijvingsgroep) | Bulkbewerking uitvoeren | Ja |
DPS-service-API (afzonderlijke inschrijving) | Maken of bijwerken | Ja |
DPS-service-API (afzonderlijke inschrijving) | Verwijderen | Ja |
DPS-service-API (afzonderlijke inschrijving) | Get | Ja |
DPS-service-API (afzonderlijke inschrijving) | Attestation-mechanisme ophalen | Ja |
DPS-service-API (afzonderlijke inschrijving) | Query | Ja |
DPS-service-API (afzonderlijke inschrijving) | Bulkbewerking uitvoeren | Ja |
DPS-certificaat-API | Maken of bijwerken | Nee |
DPS-certificaat-API | Verwijderen | Nee |
DPS-certificaat-API | Verificatiecode genereren | Nee |
DPS-certificaat-API | Get | Nee |
DPS-certificaat-API | Lijst | Nee |
DPS-certificaat-API | Certificaat verifiëren | Nee |
IoT DPS-resource-API | Beschikbaarheid van inrichtingsservicenaam controleren | Nee |
IoT DPS-resource-API | Maken of bijwerken | Nee |
IoT DPS-resource-API | Verwijderen | Nee |
IoT DPS-resource-API | Get | Nee |
IoT DPS-resource-API | Resultaat van bewerking ophalen | Nee |
IoT DPS-resource-API | Lijst per resourcegroep | Nee |
IoT DPS-resource-API | Lijst per abonnement | Nee |
IoT DPS-resource-API | Lijst op sleutels | Nee |
IoT DPS-resource-API | Sleutels voor sleutelnaam vermelden | Nee |
IoT DPS-resource-API | Geldige SKU's weergeven | Nee |
IoT DPS-resource-API | Bijwerken | Nee |
Gerelateerde Azure-onderdelen
Met DPS kunnen apparaten met behulp van Azure IoT Hub automatisch worden ingericht. Lees hier meer informatie over IoT Hub.
Notitie
Het inrichten van geneste edge-apparaten (bovenliggende/onderliggende hiërarchieën) wordt momenteel niet ondersteund door DPS.
IoT Central-toepassingen gebruiken een intern DPS-exemplaar om apparaatverbindingen te beheren. Zie Hoe apparaten verbinding maken met IoT Central voor meer informatie.
Volgende stappen
U hebt nu een algemeen beeld van het inrichten van IoT-apparaten in Azure. De volgende stap is het uitproberen van een compleet IoT-scenario.
IoT Hub Device Provisioning Service instellen met Azure Portal