Begrepp för enhetsautentisering i IoT Central
Den här artikeln beskriver hur enheter autentiserar till ett IoT Central-program. Mer information om den övergripande anslutningsprocessen finns i Ansluta en enhet.
Enheter autentiserar med IoT Central-programmet med hjälp av antingen en SAS-token (signatur för delad åtkomst) eller ett X.509-certifikat. X.509-certifikat rekommenderas i produktionsmiljöer.
Du använder registreringsgrupper för att hantera alternativen för enhetsautentisering i ditt IoT Central-program.
I den här artikeln beskrivs följande alternativ för enhetsautentisering:
Vart och ett av dessa autentiseringsalternativ kräver att varje enhet har ett unikt enhets-ID. Enhets-ID:t är en unik identifierare för den enhet som du använder för att hantera enheten i ditt IoT Central-program.
X.509-registreringsgrupp
I en produktionsmiljö är X.509-certifikat den rekommenderade mekanismen för enhetsautentisering för IoT Central. Mer information finns i Enhetsautentisering med X.509 CA-certifikat.
En X.509-registreringsgrupp innehåller ett rot- eller mellanliggande X.509-certifikat. Enheter kan autentisera om de har ett giltigt lövcertifikat som härletts från rotcertifikatet eller mellanliggande certifikat.
Så här ansluter du en enhet med ett X.509-certifikat till ditt program:
- Skapa en registreringsgrupp som använder attesteringstypen Certifikat (X.509 ).
- Lägg till och verifiera ett mellanliggande eller rot-X.509-certifikat i registreringsgruppen.
- Generera ett lövcertifikat från rotcertifikatet eller mellanliggande certifikat i registreringsgruppen. Installera lövcertifikatet på enheten så att det kan användas när det ansluter till ditt program.
Varje registreringsgrupp bör använda ett unikt X.509-certifikat. IoT Central stöder inte användning av samma X.509-certifikat i flera registreringsgrupper.
Mer information finns i Ansluta enheter med X.509-certifikat.
Endast i testsyfte
I en produktionsmiljö använder du certifikat från certifikatprovidern. Endast för testning kan du använda följande verktyg för att generera rotcertifikat, mellanliggande certifikat och enhetscertifikat:
- Verktyg för Azure IoT Device Provisioning Device SDK: en samling Node.js verktyg som du kan använda för att generera och verifiera X.509-certifikat och -nycklar.
- Hantera certifikat för testcertifikatutfärdare för exempel och självstudier: en samling PowerShell- och Bash-skript för att:
- Skapa en certifikatkedja.
- Spara certifikaten som .cer filer som ska laddas upp till ditt IoT Central-program.
- Använd verifieringskoden från IoT Central-programmet för att generera verifieringscertifikatet.
- Skapa lövcertifikat för dina enheter med hjälp av dina enhets-ID:n som en parameter till verktyget.
SAS-registreringsgrupp
En SAS-registreringsgrupp innehåller SAS-nycklar på gruppnivå. Enheter kan autentisera om de har en giltig SAS-token härledd från en SAS-nyckel på gruppnivå.
Så här ansluter du en enhet med enhets-SAS-token till ditt program:
Skapa en registreringsgrupp som använder SAS-attesteringstypen (Signatur för delad åtkomst).
Kopiera gruppens primära eller sekundära nyckel från registreringsgruppen.
Använd Azure CLI för att generera en enhetstoken från gruppnyckeln:
az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
Dricks
Varje enhet som ansluter till ditt IoT Central-program måste ha ett unikt enhets-ID. Föregående kommando genererar en unik token för varje enhet.
Använd den genererade enhetstoken när enheten ansluter till ditt IoT Central-program.
Kommentar
Om du vill använda befintliga SAS-nycklar i dina registreringsgrupper inaktiverar du växlingsknappen Generera automatiskt nycklar och anger dina SAS-nycklar manuellt.
Om du använder standardregistreringsgruppen SAS-IoT-Devices genererar IoT Central de enskilda enhetsnycklarna åt dig. Om du vill komma åt dessa nycklar väljer du Anslut på enhetens informationssida. På den här sidan visas det ID-omfång, enhets-ID, primärnyckel och sekundärnyckel som du använder i enhetskoden. På den här sidan visas även en QR-kod som innehåller samma data.
Individuell registrering
Vanligtvis ansluter enheter med autentiseringsuppgifter som härleds från en registreringsgrupp X.509-certifikat eller SAS-nyckel. Men om dina enheter har sina egna autentiseringsuppgifter kan du använda enskilda registreringar. En enskild registrering är en post för en enda enhet som gör att den kan ansluta. Enskilda registreringar kan använda antingen X.509-lövcertifikat eller SAS-token (från en fysisk eller virtuell betrodd plattformsmodul) som attesteringsmekanismer. Mer information finns i DPS individuell registrering.
Kommentar
När du skapar en enskild registrering för en enhet har den företräde framför standardalternativen för registreringsgrupper i ditt IoT Central-program.
Skapa enskilda registreringar
IoT Central stöder följande attesteringsmekanismer för enskilda registreringar:
Symmetrisk nyckelattestering: Symmetrisk nyckelattestering ä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 Enskild registrering som autentiseringstyp och Signatur för delad åtkomst (SAS) som autentiseringsmetod. Ange de base64-kodade primära och sekundära nycklarna och spara ändringarna. Använd ID-omfånget, enhets-ID och antingen den primära eller sekundära nyckeln för att ansluta enheten.
Dricks
För testning kan du använda OpenSSL för att generera base64-kodade nycklar:
openssl rand -base64 64
X.509-certifikat: Om du vill skapa en enskild registrering med X.509-certifikat öppnar du sidan Enhetsanslutning , väljer Enskild registrering som autentiseringstyp och Certifikat (X.509) som autentiseringsmetod. 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.
Dricks
För testning kan du använda Verktyg för Azure IoT Device Provisioning Device SDK för Node.js för att generera ett självsignerat certifikat:
node create_test_cert.js device "mytestdevice"
TPM-attestering (Trusted Platform Module): 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. Programvaruemulerade TPM:er passar bra för prototyper eller testning, men de ger inte samma säkerhetsnivå som diskreta, inbyggda eller integrerade TPM:er. Använd inte programvaru-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 autentiseringstyp och TPM som autentiseringsmetod. Ange TPM-bekräftelsenyckeln och spara enhetens anslutningsinformation.
Registrera enheter automatiskt
Det här scenariot gör det möjligt för OEM-tillverkare att masstillverka enheter som kan ansluta utan att först registreras i ett program. En OEM-tillverkare genererar lämpliga autentiseringsuppgifter för enheten och konfigurerar enheterna i fabriken.
Så här registrerar du automatiskt enheter som använder X.509-certifikat:
Generera lövcertifikaten för dina enheter med hjälp av det rotcertifikat eller mellanliggande certifikat som du lade till i din X.509-registreringsgrupp. Använd enhets-ID:n som
CNAME
i lövcertifikaten. Ett enhets-ID kan innehålla bokstäver, siffror och-
tecknet.Som OEM flashar du varje enhet med ett enhets-ID, ett genererat X.509-lövcertifikat och program-ID-omfångsvärdet. Enhetskoden bör också skicka modell-ID:t för den enhetsmodell som den implementerar.
När du slår på en enhet ansluter den först till DPS för att hämta sin IoT Central-anslutningsinformation.
Enheten använder informationen från DPS för att ansluta till och registrera sig med ditt IoT Central-program.
IoT Central-programmet använder modell-ID:t som skickas av enheten för att tilldela den registrerade enheten till en enhetsmall.
Så här registrerar du automatiskt enheter som använder SAS-token:
Kopiera gruppens primära nyckel från registreringsgruppen SAS-IoT-Devices :
az iot central device compute-device-key
Använd kommandot för att generera enhetens SAS-nycklar. Använd den primära gruppnyckeln 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 flashar du varje enhet med enhets-ID, den genererade ENHETS-SAS-nyckeln och programmets ID-omfångsvärde . Enhetskoden bör också skicka modell-ID:t för den enhetsmodell som den implementerar.
När du slår på en enhet ansluter den först till DPS för att hämta registreringsinformationen för IoT Central.
Enheten använder informationen från DPS för att ansluta till och registrera sig med ditt IoT Central-program.
IoT Central-programmet använder modell-ID:t som skickas av enheten för att tilldela den registrerade enheten till en enhetsmall.
Nästa steg
Några föreslagna nästa steg är att:
- Granska metodtipsen för att utveckla enheter.
- Granska exempelkoden 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 hjälp av Node.js enhets-SDK för IoT Central Application
- Lär dig hur du övervakar enhetsanslutning med Hjälp av Azure CLI
- Läs mer om Azure IoT Edge-enheter och Azure IoT Central