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 Anslut 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:

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:

  1. Skapa en registreringsgrupp som använder attesteringstypen Certifikat (X.509 ).
  2. Lägg till och verifiera ett mellanliggande eller rot-X.509-certifikat i registreringsgruppen.
  3. 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:

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:

  1. Skapa en registreringsgrupp som använder SAS-attesteringstypen (Signatur för delad åtkomst).

  2. Kopiera gruppens primära eller sekundära nyckel från registreringsgruppen.

  3. 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>
    
  4. 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å sidan med enhetsinformation. 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 Enhet Anslut ion, väljer Individuell 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 Enhet Anslut ion, 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:

  1. 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.

  2. 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.

  3. När du slår på en enhet ansluter den först till DPS för att hämta sin IoT Central-anslutningsinformation.

  4. Enheten använder informationen från DPS för att ansluta till och registrera sig med ditt IoT Central-program.

  5. 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:

  1. Kopiera gruppens primära nyckel från registreringsgruppen SAS-IoT-Devices :

    Screenshot that shows the group primary key from SAS IoT Devices enrollment group.

  2. 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>
    
  3. 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.

  4. När du slår på en enhet ansluter den först till DPS för att hämta registreringsinformationen för IoT Central.

  5. Enheten använder informationen från DPS för att ansluta till och registrera sig med ditt IoT Central-program.

  6. 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: