Ansluta till Azure IoT Central
Den här artikeln beskriver hur enheter ansluter till ett Azure IoT Central program. Innan en enhet kan utbyta data IoT Central måste den:
- Autentisera. Autentisering med IoT Central använder antingen en SAS-token (signatur för delad åtkomst) eller ett X.509-certifikat. X.509-certifikat rekommenderas i produktionsmiljöer.
- Registrera. Enheter måste vara registrerade med IoT Central program. Du kan visa registrerade enheter på sidan Enheter i programmet.
- Associera med en enhetsmall. I ett IoT Central-program definierar enhetsmallar det användargränssnitt som operatörer använder för att visa och hantera anslutna enheter.
IoT Central stöder följande två scenarier för enhetsregistrering:
- Automatisk registrering. Enheten registreras automatiskt första gången den ansluter. Det här scenariot gör det möjligt för OEM-tillverkare att massproduktionsenheter som kan ansluta utan att först registreras. En OEM genererar lämpliga enhetsautentiseringsuppgifter och konfigurerar enheterna i fabriken. Du kan också kräva att en operatör godkänner enheten innan den börjar skicka data. Det här scenariot kräver att du konfigurerar en X.509- eller SAS-gruppregistrering i ditt program.
- Manuell registrering. Operatörer registrerar antingen enskilda enheter på sidan Enheter eller importerar en CSV-fil för massregistrera enheter. I det här scenariot kan du använda X.509- eller SAS-gruppregistrering, eller X.509- eller SAS-enskild registrering.
Enheter som ansluter till IoT Central bör följa IoT Plug and Play konventionerna. En av dessa konventioner är att en enhet ska skicka modell-ID:t för enhetsmodellen som den implementerar när den ansluter. Modell-ID:t gör att IoT Central kan associera enheten med rätt enhetsmall.
IoT Central använder Azure IoT Hub Device Provisioning Service (DPS) för att hantera anslutningsprocessen. En enhet ansluter först till en DPS-slutpunkt för att hämta den information som behövs för att ansluta till ditt program. Internt använder ditt IoT Central en IoT-hubb för att hantera enhetsanslutningar. Genom att använda DPS kan du:
- IoT Central stöd för registrering och anslutning av enheter i stor skala.
- Du kan generera enhetsautentiseringsuppgifter och konfigurera enheterna offline utan att registrera enheterna via IoT Central användargränssnitt.
- Du kan använda dina egna enhets-ID:er för att registrera enheter i IoT Central. Med egna enhets-ID:er förenklas integreringen med befintliga back office-system.
- Ett enda, konsekvent sätt att ansluta enheter till IoT Central.
I den här artikeln beskrivs följande enhetsanslutningssteg:
- X.509-gruppregistrering
- Registrering av SAS-grupp
- Enskild registrering
- Enhetsregistrering
- Associera en enhet med en enhetsmall
X.509-gruppregistrering
I en produktionsmiljö är användning av X.509-certifikat den rekommenderade mekanismen för enhetsautentisering för IoT Central. Mer information finns i Enhetsautentisering med X.509 CA-certifikat.
Så här ansluter du en enhet med ett X.509-certifikat till ditt program:
- Skapa en registreringsgrupp som använder certifikatatesteringstypen (X.509).
- Lägg till och verifiera ett mellanliggande X.509-rotcertifikat eller X.509-rotcertifikat i registreringsgruppen.
- Generera ett lövcertifikat från rotcertifikatet eller mellanliggande certifikat i registreringsgruppen. Skicka lövcertifikatet från enheten när den ansluter till ditt program.
Mer information finns i Så här ansluter du enheter med X.509-certifikat
Endast i testsyfte
För testning kan du använda följande verktyg för att generera rotcertifikat, mellanliggande certifikat och enhetscertifikat:
- Verktyg för Sdk för Azure IoT Device Provisioning Device:en samling Node.js-verktyg som du kan använda för att generera och verifiera X.509-certifikat och X.509-nycklar.
- Hantera ca-testcertifikat för exempel och självstudier:en samling PowerShell- och Bash-skript för att:
- Skapa en certifikatkedja.
- Spara certifikaten som CER-filer för uppladdning till ditt IoT Central program.
- Använd verifieringskoden från IoT Central för att generera verifieringscertifikatet.
- Skapa lövcertifikat för dina enheter med enhets-ID:t som en parameter för verktyget.
Registrering av SAS-grupp
Så här ansluter du en enhet med enhetens SAS-nyckel till ditt program:
Skapa en registreringsgrupp som använder sas-attestationstypen (signatur för delad åtkomst).
Kopiera den primära eller sekundära nyckeln för gruppen från registreringsgruppen.
Använd Azure CLI för att generera en enhetsnyckel från gruppnyckeln:
az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>Använd den genererade enhetsnyckeln när enheten ansluter till ditt IoT Central program.
Anteckning
Om du vill använda befintliga SAS-nycklar i dina registreringsgrupper inaktiverar du reglaget Generera nycklar automatiskt och skriver in SAS-nycklarna.
Enskild registrering
Kunder som ansluter enheter som var och en har sina egna autentiseringsuppgifter använder enskilda registreringar. En enskild registrering är en post för en enskild enhet som får ansluta. Enskilda registreringar kan använda antingen X.509-lövcertifikat eller SAS-token (från en fysisk eller virtuell betrodd plattformsmodul) som attesteringsmekanismer. Ett enhets-ID kan innehålla bokstäver, siffror och - tecken. Mer information finns i DPS individuell registrering.
Anteckning
När du skapar en enskild registrering för en enhet har den företräde framför standardalternativen för gruppregistrering i IoT Central program.
Skapa enskilda registreringar
IoT Central stöder följande attestationsmekanismer för enskilda registreringar:
Symmetrisk nyckel attestation: Symmetrisk nyckel attestation är en enkel metod för att autentisera en enhet med DPS-instansen. Om du vill skapa en enskild registrering som använder symmetriska nycklar öppnar du sidan Enhetsanslutning för enheten, väljer Individuell registrering som anslutningsmetod och Signatur för delad åtkomst (SAS) som mekanism. Ange base64-kodade primära och sekundära nycklar och spara ändringarna. Använd ID-omfånget, Enhets-ID och antingen den primära eller sekundära nyckeln för att ansluta enheten.
Tips
För testning kan du använda OpenSSL för att generera base64-kodade nycklar:
openssl rand -base64 64X.509-certifikat: Om du vill skapa en enskild registrering med X.509-certifikat öppnar du sidan Enhetsanslutning, väljer Enskild registrering som anslutningsmetod och Certifikat (X.509) som mekanism. Enhetscertifikat som används med en enskild registreringspost har ett krav på att utfärdaren och ämnes-CN är inställda på enhets-ID:t.
Tips
För testning kan du använda Verktyg för Azure IoT Device Provisioning Device SDK för Node.jsför att generera ett själv signerat certifikat:
node create_test_cert.js device "mytestdevice"Trusted Platform Module (TPM) attestation: En TPM är en typ av maskinvarusäkerhetsmodul. Att använda en TPM är ett av de säkraste sätten att ansluta en enhet. Den här artikeln förutsätter att du använder en diskret inbyggd programvara eller integrerad TPM. Programvara emulerade TPM:er passar bra för prototyper eller testning, men de ger inte samma säkerhetsnivå som diskret, inbyggd programvara eller integrerade TPM:er. Använd inte program-TPM:er i produktion. Om du vill skapa en enskild registrering som använder en TPM öppnar du sidan Enhetsanslutning, väljer Enskild registrering som anslutningsmetod och TPM som mekanism. Ange TPM-bekräftelsenyckeln och spara enhetens anslutningsinformation.
Enhetsregistrering
Innan en enhet kan ansluta IoT Central ett program måste den registreras i programmet:
- Enheter kan automatiskt registrera sig själva första gången de ansluter. Om du vill använda det här alternativet måste du använda antingen X.509-gruppregistrering eller SAS-gruppregistrering.
- En operatör kan importera en CSV-fil för att massregistrera en lista över enheter i programmet.
- En operatör kan manuellt registrera en enskild enhet på sidan Enheter i programmet.
IoT Central oem-tillverkare massproduktionsenheter som kan registreras automatiskt. En OEM genererar lämpliga enhetsautentiseringsuppgifter och konfigurerar enheterna i fabriken. När en kund sätter på en enhet för första gången ansluter den till DPS, som sedan automatiskt ansluter enheten till rätt IoT Central program. Du kan också kräva att en operatör godkänner enheten innan den börjar skicka data till programmet.
Tips
På sidan > enhetsanslutning styr alternativet Godkänn automatiskt om en operatör måste godkänna enheten manuellt innan den kan börja skicka data.
Registrera automatiskt enheter som använder X.509-certifikat
Generera lövcertifikaten för dina enheter med hjälp av rotcertifikatet eller mellanliggande certifikat som du lade till i X.509-registreringsgruppen. Använd enhets-ID:erna som
CNAMEi lövcertifikaten. Ett enhets-ID kan innehålla bokstäver, siffror och-tecken.Som OEM-tillverkare flashar du varje enhet med ett enhets-ID, ett genererat X.509-lövcertifikat och värdet för program-ID-omfång. Enhetskoden bör också skicka modell-ID:t för den enhetsmodell som den implementerar.
När du växlar på en enhet ansluter den först till DPS för att hämta dess IoT Central anslutningsinformation.
Enheten använder informationen från DPS för att ansluta till och registrera med ditt IoT Central program.
Programmet IoT Central använder det modell-ID som skickas av enheten för att associera den registrerade enheten med en enhetsmall.
Registrera enheter som använder SAS-token automatiskt
Kopiera gruppens primära nyckel från registreringsgruppen SAS-IoT-Devices:
Använd kommandot
az iot central device compute-device-keyför att generera enhetens SAS-nycklar. Använd primärnyckeln för gruppen från föregående steg. Enhets-ID:t kan innehålla bokstäver, siffror och-tecknet:az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>Som OEM-tillverkare flashar du varje enhet med enhets-ID, den genererade enhetens SAS-nyckel och värdet för program-ID-omfång. Enhetskoden bör också skicka modell-ID:t för den enhetsmodell som den implementerar.
När du växlar på en enhet ansluter den först till DPS för att hämta IoT Central registreringsinformation.
Enheten använder informationen från DPS för att ansluta till och registrera med ditt IoT Central program.
Programmet IoT Central använder det modell-ID som skickas av enheten för att associera den registrerade enheten med en enhetsmall.
Massregistrera enheter i förväg
Om du vill registrera ett stort antal enheter med ditt IoT Central-program använder du en CSV-fil för att importera enhets-ID:er och enhetsnamn.
Om dina enheter använder SAS-token för att autentisera exporterar du en CSV-fil från IoT Central program. Den exporterade CSV-filen innehåller enhets-ID:erna och SAS-nycklarna.
Om dina enheter använder X.509-certifikat för att autentisera genererar du X.509-lövcertifikat för dina enheter med hjälp av rotcertifikatet eller mellanliggande certifikatet som du laddade upp till X.509-registreringsgruppen. Använd enhets-ID:erna som du importerade CNAME som värdet i lövcertifikaten.
Enheter måste använda ID-omfångsvärdet för ditt program och skicka ett modell-ID när de ansluter.
Tips
Du hittar id-omfångsvärdet i Administration > Enhetsanslutning.
Registrera en enskild enhet i förväg
Den här metoden är användbar när du experimenterar med IoT Central eller testar enheter. Välj + Ny på sidan Enheter för att registrera en enskild enhet. Du kan använda SAS-nycklarna för enhetsanslutning för att ansluta enheten till IoT Central program. Kopiera enhetens SAS-nyckel från anslutningsinformationen för en registrerad enhet:

Associera en enhet med en enhetsmall
IoT Central associerar automatiskt en enhet med en enhetsmall när enheten ansluter. En enhet skickar ett modell-ID när den ansluter. IoT Central använder modell-ID:t för att identifiera enhetsmallen för den specifika enhetsmodellen. Identifieringsprocessen fungerar på följande sätt:
- Om enhetsmallen redan har publicerats i IoT Central program associeras enheten med enhetsmallen.
- Om enhetsmallen inte redan har publicerats i IoT Central program letar IoT Central efter enhetsmodellen i den offentliga modelldatabasen. Om IoT Central hittar modellen används den för att generera en grundläggande enhetsmall.
- Om IoT Central inte hittar modellen i den offentliga modelldatabasen markeras enheten som Oassocierad. En operatör kan antingen skapa en enhetsmall för enheten och sedan migrera den oassocierade enheten till den nya enhetsmallen eller skapa en enhetsmall automatiskt baserat på de data som enheten skickar.
Följande skärmbild visar hur du visar modell-ID för en enhetsmall i IoT Central. I en enhetsmall väljer du en komponent och sedan Redigera identitet:
Du kan visa termostatmodellen i den offentliga modelldatabasen. Modell-ID-definitionen ser ut så här:
"@id": "dtmi:com:example:Thermostat;1"
Använd följande DPS-nyttolast för att associera enheten med en enhetsmall:
{
"modelId":"dtmi:com:example:TemperatureController;2"
}
Mer information om DPS-nyttolasten finns i exempelkoden som används i Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central program.
Enhetsstatusvärden
När en verklig enhet ansluter till IoT Central program ändras enhetens status enligt följande:
Enhetsstatusen är först Registrerad. Den här statusen innebär att enheten skapas i IoT Central och har ett enhets-ID. En enhet registreras när:
- En ny verklig enhet läggs till på sidan Enheter.
- En uppsättning enheter läggs till med hjälp av Importera på sidan Enheter.
Enhetsstatusen ändras till Etablerat när enheten som är ansluten till ditt IoT Central-program med giltiga autentiseringsuppgifter slutför etableringssteget. I det här steget använder enheten DPS för att automatiskt hämta en anslutningssträng från IoT Hub som används av IoT Central program. Enheten kan nu ansluta till IoT Central och börja skicka data.
En operatör kan blockera en enhet. När en enhet blockeras kan den inte skicka data till ditt IoT Central program. Blockerade enheter har statusen Blockerad. En operatör måste återställa enheten innan den kan återuppta sändningen av data. När en operatör avblockerar en enhet återgår statusen till dess tidigare värde, Registrerad eller Etablerat.
Om enhetsstatusen är Väntar på godkännande innebär det att alternativet Godkänn automatiskt är inaktiverat. En operatör måste uttryckligen godkänna en enhet innan den börjar skicka data. Enheter som inte har registrerats manuellt på sidan Enheter, men som är anslutna med giltiga autentiseringsuppgifter, har enhetsstatusen Väntar på godkännande. Operatörer kan godkänna dessa enheter från sidan Enheter med knappen Godkänn.
Om enhetsstatusen är Oassocierad innebär det att enheten som ansluter IoT Central inte har någon associerad enhetsmall. Den här situationen inträffar vanligtvis i följande scenarier:
- En uppsättning enheter läggs till med hjälp av Importera på sidan Enheter utan att enhetsmallen anges.
- En enhet registrerades manuellt på sidan Enheter utan att ange enhetsmallen. Enheten anslöts sedan med giltiga autentiseringsuppgifter.
En operatör kan associera en enhet med en enhetsmall från sidan Enheter med knappen Migrera.
Enhetsanslutningsstatus
När en enhet eller gränsenhet ansluter med hjälp av MQTT-protokollet genereras anslutna och frånkopplade händelser för enheten. Dessa händelser skickas inte av enheten, de genereras internt av IoT Central.
Följande diagram visar hur anslutningen registreras i slutet av ett tidsfönster när en enhet ansluter. Om flera anslutnings- och frånkopplingshändelser inträffar IoT Central den som är närmast slutet av tidsperioden. Om en enhet till exempel kopplar från och återansluter inom tidsperioden IoT Central att registrera anslutningshändelsen. Tidsfönstret är för närvarande cirka en minut.
Titta på följande video om du vill veta mer om hur du övervakar enhetens anslutningsstatus:
Du kan inkludera anslutnings- och frånkopplingshändelser i exporter från IoT Central. Mer information finns i React för IoT Hub-> för enhetsanslutna och frånkopplade enhetshändelser.
SDK-support
Azure-enhets-SDK:erna är det enklaste sättet att implementera din enhetskod. Följande enhets-SDK:er är tillgängliga:
- Azure IoT SDK för C
- Azure IoT SDK för Python
- Azure IoT SDK för Node.js
- Azure IoT SDK för Java
- Azure IoT SDK för .NET
SDK-funktioner IoT Hub anslutning
All enhetskommunikation med IoT Hub använder följande IoT Hub anslutningsalternativ:
I följande tabell sammanfattas hur Azure IoT Central enhetsfunktioner mappas till IoT Hub funktioner:
| Azure IoT Central | Azure IoT Hub |
|---|---|
| Telemetri | Meddelanden från enhet till moln |
| Offlinekommandon | Meddelanden från moln till enhet |
| Egenskap | Rapporterade egenskaper för enhetstvilling |
| Egenskap (skrivbar) | Önskade och rapporterade egenskaper för enhetstvilling |
| Kommando | Direkta metoder |
Protokoll
Enhets-SDK:erna stöder följande nätverksprotokoll för att ansluta till en IoT-hubb:
- MQTT
- AMQP
- HTTPS
Information om dessa skillnadsprotokoll och vägledning om hur du väljer ett finns i Välja ett kommunikationsprotokoll.
Om enheten inte kan använda något av de protokoll som stöds använder du Azure IoT Edge för att göra protokollkonvertering. IoT Edge har stöd för andra intelligence-on-the-edge-scenarier för att avlasta bearbetning från Azure IoT Central-programmet.
Säkerhet
Alla data som utbyts mellan enheter och Azure IoT Central krypteras. IoT Hub autentiserar varje begäran från en enhet som ansluter till någon av de enhetsriktade IoT Hub slutpunkterna. För att undvika att utbyta autentiseringsuppgifter via kabel använder en enhet signerade token för att autentisera. Mer information finns i Kontrollera åtkomst till IoT Hub.
Nästa steg
Några förslag på nästa steg är att:
- Gå igenom metodtipsen för att utveckla enheter.
- Granska lite exempelkod som visar hur du använder SAS-token i Självstudie: Skapa och ansluta ett klientprogram till ditt Azure IoT Central program
- Lär dig hur du ansluter enheter med X.509-certifikat med Node.js SDK för IoT Central program
- Lär dig hur du övervakar enhetsanslutningar med Azure CLI
- Läs om Azure IoT Edge enheter och Azure IoT Central