Vad är IoT Hub Device Provisioning Service?
Microsoft Azure har en stor uppsättning integrerade offentliga molntjänster för alla dina IoT-lösningsbehov. IoT Hub Device Provisioning Service (DPS) är en hjälptjänst för IoT Hub som möjliggör zero-touch, just-in-time-etablering till rätt IoT-hubb utan mänsklig inblandning. DPS möjliggör etablering av miljontals enheter på ett säkert och skalbart sätt.
Många av de manuella stegen som traditionellt ingår i etableringen automatiseras med DPS för att minska tiden för att distribuera IoT-enheter och minska risken för manuella fel. I följande diagram beskrivs vad som händer i bakgrunden för att få en enhet etablerad. Det första steget är manuellt; alla följande steg utförs automatiskt.
Innan enhetsetableringsflödet börjar finns det två manuella steg att förbereda. På enhetssidan förbereder enhetstillverkaren enheten för etablering genom att förkonfigurera den med sina autentiseringsuppgifter och tilldelad enhetsetableringstjänst-ID och slutpunkt. På molnsidan förbereder du eller enhetstillverkaren instansen av enhetsetableringstjänsten med enskilda registrerings- och registreringsgrupper som identifierar giltiga enheter och definierar hur de ska etableras.
När enheten och molnet har konfigurerats för etablering startar följande steg automatiskt så snart enheten aktiveras för första gången:
- När enheten först aktiveras ansluter den till DPS-slutpunkten och visar autentiseringsuppgifterna.
- DPS-instansen kontrollerar enhetens identitet mot registreringslistan. När enhetsidentiteten har verifierats tilldelar DPS enheten till en IoT-hubb och registrerar den i hubben.
- DPS-instansen tar emot enhets-ID och registreringsinformation från den tilldelade hubben och skickar tillbaka informationen till enheten.
- Enheten använder sin registreringsinformation för att ansluta direkt till sin tilldelade IoT-hubb och autentisera.
- När enheten och IoT-hubben har autentiserats börjar de kommunicera direkt. DPS-instansen har ingen ytterligare roll som mellanhand om inte enheten behöver etableras på nytt.
När Device Provisioning Service ska användas
Det finns många etableringsscenarier där DPS är ett utmärkt val för att få enheter anslutna och konfigurerade för att IoT Hub, till exempel:
- Zero touch-etablering till en enda IoT-lösning utan att hårdkoda IoT Hub-anslutningsinformationen som fabriksinställning (första konfigurationen)
- Belastningsutjämning av enheter över flera hubbar
- Ansluta enheter till ägarens IoT-lösning baserat på försäljningstransaktionsdata (flera klientorganisationer)
- Anslutning av enheter till en viss IoT-lösning beroende på användningsfall (lösningsisolering)
- Anslutning av en enhet till den IoT-hubb som har lägst fördröjning (geografisk horisontell partitionering)
- Ometablering baserat på en ändring i enheten
- Rotera de nycklar som används av enheten för att ansluta till IoT Hub (när X.509-certifikat inte används för att ansluta)
Etablering av kapslade IoT Edge enheter (överordnade/underordnade hierarkier) stöds för närvarande inte av DPS.
Etableringsprocessen
Det finns två olika steg i distributionsprocessen för en enhet där DPS tar en del som kan göras oberoende av varandra:
- Tillverkningssteget där enheten skapas och förberedas på fabriken samt
- Molnkonfigurationssteget där Device Provisioning Service konfigureras för automatisk etablering.
Båda dessa steg passar smidigt in i befintliga tillverknings- och etableringsprocesser. DPS förenklar även vissa distributionsprocesser som inbegriper manuellt arbete för att få anslutningsinformation till enheten.
Tillverkningssteg
Det här steget handlar om vad som händer vid tillverkningen. De roller som ingår i det här steget innefattar kiseldesigner, kiseltillverkare, integrerare och sluttillverkare av enheten. Det här steget handlar om tillverkningen av själva maskinvaran.
DPS introducerar inte något nytt steg i tillverkningsprocessen. Snarare binder det in i det befintliga steget som installerar den ursprungliga programvaran och (helst) HSM på enheten. I stället för att ett enhets-ID skapas i det här steget programmeras enheten med information om etableringstjänsten, vilket gör att den kan anropa etableringstjänsten för att få sin tilldelning för anslutningsinformation/IoT-lösning när den aktiveras.
I det här steget ger också tillverkaren enhetsdistributören/-operatören identifierande nyckelinformation. Att tillhandahålla den informationen kan vara så enkelt som att bekräfta att alla enheter har ett X.509-certifikat som genereras från ett signeringscertifikat som tillhandahålls av enhetsdistributören/-operatören eller så komplicerat som att extrahera den offentliga delen av en TPM-bekräftelsenyckel från varje TPM-enhet. Dessa tjänster erbjuds av många kiseltillverkare i dag.
Molnkonfigurationssteg
Det här steget handlar om att konfigurera molnet för korrekt automatisk etablering. Generellt finns det två typer av användare som ingår i molnkonfigurationssteget: någon som vet hur enheter måste konfigureras i början (en enhetsoperatör) och någon som vet hur enheter ska delas upp mellan IoT-hubbar (en lösningsoperatör).
Det finns en första engångskonfiguration av etableringen som måste utföras. Detta hanteras vanligtvis av lösningsoperatören. När etableringstjänsten har konfigurerats behöver den inte ändras såvida inte användningsfallet ändras.
När tjänsten har konfigurerats för automatisk etablering måste den förberedas inför att registrera enheter. Det här steget utförs av enhetsoperatören, som känner till önskad konfiguration av enheterna och ansvarar för att se till att etableringstjänsten kan intyga enhetens identitet korrekt när den söker efter sin IoT-hubb. Enhetsoperatören tar emot den identifierande nyckelinformationen från tillverkaren och lägger till den i registreringslistan. Det kan förekomma efterföljande uppdateringar av registreringslistan allt eftersom nya poster läggs till eller befintliga poster uppdateras med den senaste informationen om enheterna.
Registrering och etablering
Etablering innebär olika saker beroende på vilken bransch termen används i. I samband med etablering av IoT-enheter till sina molnlösningar är etablering en tvåstegsprocess:
- Den första delen är att upprätta den första anslutningen mellan enheten och IoT-lösningen genom att registrera enheten.
- Den andra delen är att tillämpa korrekt konfiguration på enheten baserat på de särskilda kraven i den lösning som enheten registrerats för.
När båda av dessa två steg har slutförts kan enheten anses ha etablerats fullständigt. Vissa molntjänster tillhandahåller endast det första steget i etableringsprocessen genom att registrera enheter till IoT-lösningens slutpunkt men utan att ge den inledande konfigurationen. DPS automatiserar båda stegen för att tillhandahålla en sömlös etableringsupplevelse för enheten.
Funktion i Device Provisioning Service
DPS har många funktioner, vilket gör det idealiskt för etablering av enheter.
- Stöd för säker attestering för både X.509- och TPM-baserade identiteter.
- Registreringslista som innehåller fullständiga uppgifter för enheter eller grupper av enheter som kan komma att registreras. Registreringslistan innehåller information om önskad konfiguration för enheten när den registreras, och den kan uppdateras när som helst.
- Flera allokeringsprinciper för att styra hur DPS tilldelar enheter till IoT-hubbar till stöd för dina scenarier: Lägsta svarstid, jämnt viktad distribution (standard) och statisk konfiguration. Svarstiden bestäms med samma metod som Traffic Manager. Anpassad allokering, som gör att du kan implementera dina egna allokeringsprinciper via webhooks i Azure Functions stöds också.
- Övervaknings- och diagnostikloggning för att kontrollera att allt fungerar korrekt.
- Stöd för flera hubbar gör att DPS kan tilldela enheter till mer än en IoT-hubb. DPS kan kommunicera med hubbar i flera Azure-prenumerationer.
- Stöd mellan regioner gör att DPS kan tilldela enheter till IoT-hubbar i andra regioner.
- Kryptering för vilande data gör att data i DPS kan krypteras och dekrypteras transparent med hjälp av 256-bitars AES-kryptering, en av de starkaste block chiffer som är tillgängliga och är FIPS 140-2-kompatibel.
Du kan lära dig mer om de begrepp och funktioner som ingår i enhetsetablering genom att läsa artikeln DPS-terminologi tillsammans med andra konceptuella artiklar i samma avsnitt.
Stöd för alla plattformar
Precis som alla Azure IoT-tjänster fungerar DPS plattformsoberoende med olika operativsystem. Azure erbjuder SDK:er med öppen källkod på olika språk för att underlätta anslutning av enheter och hantering av tjänsten. DPS stöder följande protokoll för att ansluta enheter:
- HTTPS
- AMQP
- AMQP över WebSockets
- MQTT
- MQTT över WebSockets
DPS stöder endast HTTPS-anslutningar för tjänståtgärder.
Regioner
DPS är tillgängligt i många regioner. Listan över regioner som stöds för alla tjänster finns i Azure-regioner. Du kan kontrollera tillgängligheten för Device Provisioning Service på sidan Azure Status (Azure-status).
För återhämtning och tillförlitlighet rekommenderar vi att du distribuerar till en av de regioner som stöder Tillgänglighetszoner.
Överväganden för datahemvist
Enhetsetableringstjänsten lagrar eller bearbetar inte kunddata utanför det geografiska område där du distribuerar tjänstinstansen. Mer information finns i Replikering mellan regioner i Azure.
Men som standard använder DPS samma enhetsetableringsslutpunkt för alla etableringstjänstinstanser och utför belastningsutjämning av trafik till närmaste tillgängliga tjänstslutpunkt. Därför kan autentiseringshemligheter tillfälligt överföras utanför den region där DPS-instansen ursprungligen skapades. När enheten är ansluten flödar dock enhetsdata direkt till den ursprungliga regionen för DPS-instansen.
Använd en privat slutpunkt för att säkerställa att dina data inte lämnar den region som DPS-instansen skapades i. Information om hur du konfigurerar privata slutpunkter finns i Stöd för Azure IoT Device Provisioning Service (DPS) för virtuella nätverk.
Kvoter och begränsningar
Varje Azure-prenumeration har standardkvotgränser som kan påverka IoT-lösningens omfång. Den aktuella gränsen på per prenumerationsbasis är 10 Device Provisioning Services per prenumeration.
Mer information om kvotgränser finns i Tjänstbegränsningar för Azure-prenumerationer.
Anteckning
Vissa delar av den här tjänsten har justerbara gränser. Detta representeras i tabellerna nedan med kolumnen Justerbar? . När gränsen kan justeras är värdet Justerbart?Ja.
Det faktiska värdet som en gräns kan justeras till kan variera beroende på varje kunds distribution. Flera instanser av DPS kan krävas för mycket stora distributioner.
Om ditt företag kräver att en justerbar gräns eller kvot höjs över standardgränsen kan du skicka en begäran om ytterligare resurser genom att öppna ett supportärende. Att begära en ökning garanterar inte att det kommer att beviljas, eftersom det måste ses över från fall till fall. Kontakta Microsofts support så tidigt som möjligt under implementeringen för att kunna avgöra om din begäran kan godkännas och planera i enlighet med detta.
I följande tabell visas de begränsningar som gäller för Azure IoT Hub enhetsetableringstjänstens resurser.
Resurs | Gräns | Justerbar? |
---|---|---|
Maximalt antal enhetsetableringstjänster per Azure-prenumeration | 10 | Ja |
Maximalt antal registreringar | 1,000,000 | Ja |
Maximalt antal enskilda registreringar | 1,000,000 | Ja |
Maximalt antal registreringsgrupper (X.509-certifikat) | 100 | Ja |
Maximalt antal registreringsgrupper (symmetrisk nyckel) | 100 | Inga |
Maximalt antal certifikatutfärdare | 25 | Ja |
Maximalt antal länkade IoT-hubbar | 50 | Inga |
Maximal storlek på meddelandet | 96 kB | Inga |
Tips
Om den hårda gränsen för symmetriska nyckelregistreringsgrupper är ett blockerande problem rekommenderar vi att du använder enskilda registreringar som en lösning.
Enhetsetableringstjänsten har följande hastighetsbegränsningar.
Pris | Värde per enhet | Justerbar? |
---|---|---|
Operations | 1 000/min/tjänst | Ja |
Enhetsregistreringar | 1 000/min/tjänst | Ja |
Avsökning av enhet | 5/10 sek/enhet | Inga |
Åtgärder och priser för fakturerbara tjänster
Varje API-anrop på DPS kan faktureras som en åtgärd. Detta inkluderar alla tjänst-API:er och API:et för enhetsregistrering.
Tabellerna nedan visar den aktuella fakturerbara statusen för varje DPS-tjänst-API-åtgärd. Om du vill veta mer om priser för DPS väljer du Pristabell överst på sidan Azure IoT Hub prissättning. Välj sedan fliken IoT Hub Device Provisioning Service (Enhetsetableringstjänst) och valuta och region för din tjänst.
API | Åtgärd | Fakturerbar? |
---|---|---|
Enhets-API | Sökning efter enhetsregistreringsstatus | Inga |
Enhets-API | Åtgärdsstatussökning | Inga |
Enhets-API | Registrera enhet | Ja |
DPS-tjänst-API (registreringstillstånd) | Ta bort | Ja |
DPS-tjänst-API (registreringstillstånd) | Hämta | Ja |
DPS-tjänst-API (registreringstillstånd) | Query | Ja |
DPS-tjänst-API (registreringsgrupp) | Skapa eller uppdatera | Ja |
DPS-tjänst-API (registreringsgrupp) | Ta bort | Ja |
DPS-tjänst-API (registreringsgrupp) | Hämta | Ja |
DPS-tjänst-API (registreringsgrupp) | Hämta attesteringsmekanism | Ja |
DPS-tjänst-API (registreringsgrupp) | Query | Ja |
DPS-tjänst-API (registreringsgrupp) | Kör massåtgärd | Ja |
DPS-tjänst-API (enskild registrering) | Skapa eller uppdatera | Ja |
DPS-tjänst-API (enskild registrering) | Ta bort | Ja |
DPS-tjänst-API (enskild registrering) | Hämta | Ja |
DPS-tjänst-API (enskild registrering) | Hämta attesteringsmekanism | Ja |
DPS-tjänst-API (enskild registrering) | Query | Ja |
DPS-tjänst-API (enskild registrering) | Kör massåtgärd | Ja |
DPS-certifikat-API | Skapa eller uppdatera | Inga |
DPS-certifikat-API | Ta bort | Inga |
DPS-certifikat-API | Generera en verifieringskod | Inga |
DPS-certifikat-API | Hämta | Inga |
DPS-certifikat-API | Lista | Inga |
DPS-certifikat-API | Verifiera certifikat | Inga |
Resurs-API för IoT DPS | Kontrollera tillgängligheten för etableringstjänstens namn | Inga |
Resurs-API för IoT DPS | Skapa eller uppdatera | Inga |
Resurs-API för IoT DPS | Ta bort | Inga |
Resurs-API för IoT DPS | Hämta | Inga |
Resurs-API för IoT DPS | Hämta åtgärdsresultat | Inga |
Resurs-API för IoT DPS | Lista efter resursgrupp | Inga |
Resurs-API för IoT DPS | Lista efter prenumeration | Inga |
Resurs-API för IoT DPS | Lista efter nycklar | Inga |
Resurs-API för IoT DPS | Listnycklar för nyckelnamn | Inga |
Resurs-API för IoT DPS | Lista giltiga SKU:er | Inga |
Resurs-API för IoT DPS | Uppdatera | Inga |
Relaterade Azure-komponenter
DPS automatiserar enhetsetablering med Azure IoT Hub. Läs mer om IoT Hub.
Anteckning
Etablering av kapslade gränsenheter (överordnade/underordnade hierarkier) stöds för närvarande inte av DPS.
IoT Central-program använder en intern DPS-instans för att hantera enhetsanslutningar. Mer information finns i:
- Så här ansluter enheter till IoT Central
- Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central-program
Nästa steg
Nu har du en översikt över etablering av IoT-enheter i Azure. Nästa steg är att testa ett IoT-scenario från slutpunkt till slutpunkt.
Konfigurera IoT Hub Device Provisioning Service med Azure Portal