Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
              Gäller för: IoT Edge 1.5
 IoT Edge 1.5
Viktigt!
IoT Edge 1.5 LTS är den version som stöds. IoT Edge 1.4 LTS upphör från och med den 12 november 2024. Om du har en tidigare version läser du Uppdatera IoT Edge.
I ett transparent gatewayscenario behöver nedströmsenheter, som ibland kallas underordnade enheter, identiteter i IoT Hub som alla andra enheter. Den här artikeln förklarar alternativen för att autentisera en nedströmsenhet till IoT Hub och visar hur du deklarerar gatewayanslutningen.
Kommentar
En nedströmsenhet skickar data direkt till Internet eller till gatewayenheter, oavsett om de är IoT Edge-aktiverade eller inte. En underordnad enhet kan vara en underordnad enhet eller en gatewayenhet i en kapslad topologi.
Det finns tre allmänna steg för att konfigurera en lyckad transparent gatewayanslutning. Den här artikeln beskriver det andra steget:
- Konfigurera gatewayenheten som en server så att underordnade enheter kan ansluta till den på ett säkert sätt. Konfigurera gatewayen för att ta emot meddelanden från underordnade enheter och dirigera dem till rätt mål. De här stegen finns i Konfigurera en IoT Edge-enhet så att den fungerar som en transparent gateway.
- Skapa en enhetsidentitet för den underordnade enheten så att den kan autentiseras med IoT Hub. Konfigurera den underordnade enheten så att den skickar meddelanden via gatewayenheten.
- Anslut den underordnade enheten till gatewayenheten och börja skicka meddelanden. De här stegen finns i Ansluta en nedströmsenhet till en Azure IoT Edge-gateway.
Underordnade enheter kan autentisera med IoT Hub med någon av tre metoder: symmetriska nycklar (kallas ibland delade åtkomstnycklar), X.509 självsignerade certifikat eller X.509-certifikatutfärdare (CA) signerade certifikat. Autentiseringsstegen liknar dem för att konfigurera alla icke-IoT Edge-enheter med IoT Hub, med små skillnader för att deklarera gatewayrelationen.
Automatisk etablering av underordnade enheter med Azure IoT Hub Device Provisioning Service (DPS) stöds inte.
Förutsättningar
Slutför stegen i Konfigurera en IoT Edge-enhet så att den fungerar som en transparent gateway.
Om du använder X.509-autentisering genererar du certifikat för din underordnade enhet. Kontrollera att du har samma rot-CA-certifikat och certifikatgenererande skriptet som du använde i artikeln om den transparenta gatewayen.
Den här artikeln refererar till gatewayens värdnamn på flera punkter. Gateway-värdnamnet anges i parametern värdnamn för konfigurationsfilen på IoT Edge-gatewayenheten. Den används också i anslutningssträngen för den underordnade enheten. Gatewayens värdnamn måste matchas mot en IP-adress med hjälp av DNS eller en värdfilpost på den underordnade enheten.
Registrera enhet med IoT Hub
Välj hur du vill att din underordnade enhet ska autentisera med IoT Hub:
- Symmetrisk nyckelautentisering: IoT Hub skapar en nyckel som du lägger på den underordnade enheten. När enheten autentiseras kontrollerar IoT Hub att de två nycklarna matchar. Du behöver inte skapa ytterligare certifikat för att använda symmetrisk nyckelautentisering. - Den här metoden går snabbare att komma igång om du testar gatewayer i ett utvecklings- eller testscenario. 
- Självsignerad X.509-autentisering: Kallas ibland tumavtrycksautentisering eftersom du delar tumavtrycket från enhetens X.509-certifikat med IoT Hub. - Certifikatautentisering rekommenderas för enheter i produktionsscenarier. 
- X.509 CA-signerad autentisering: Ladda upp rotcertifikatutfärdarcertifikatet till IoT Hub. När enheter presenterar sitt X.509-certifikat för autentisering kontrollerar IoT Hub att det tillhör en förtroendekedja som har signerats av samma rotcertifikatutfärdarcertifikatutfärdare. - Certifikatautentisering rekommenderas för enheter i produktionsscenarier. 
Autentisering med symmetrisk nyckel
Symmetrisk nyckelautentisering eller autentisering med delad åtkomstnyckel är det enklaste sättet att autentisera med IoT Hub. Med symmetrisk nyckelautentisering associeras en base64-nyckel med ditt IoT-enhets-ID i IoT Hub. Du inkluderar den nyckeln i dina IoT-program så att enheten kan presentera den när den ansluter till IoT Hub.
Lägg till en ny IoT-enhet i din IoT Hub med antingen Azure-portalen, Azure CLI eller IoT-tillägget för Visual Studio Code. Kom ihåg att underordnade enheter måste identifieras i IoT Hub som vanliga IoT-enheter, inte IoT Edge-enheter.
När du skapar den nya enhetsidentiteten anger du följande information:
- Skapa ett ID för enheten. 
- Välj Symmetrisk nyckel som autentiseringstyp. 
- Välj Ange en överordnad enhet och välj den IoT Edge-gatewayenhet som den här nedströmsenheten ansluter via. Du kan alltid ändra överordnad senare.   - Kommentar - Att ange den överordnade enheten brukade vara ett valfritt steg för underordnade enheter som använder symmetrisk nyckelautentisering. Från och med IoT Edge version 1.1.0 måste dock alla underordnade enheter tilldelas till en överordnad enhet. - Du kan konfigurera IoT Edge-hubben så att den återgår till det tidigare beteendet genom att ange miljövariabeln AuthenticationMode till värdet CloudAndScope. 
Du kan också använda IoT-tillägget för Azure CLI för att slutföra samma åtgärd. I följande exempel används kommandot az iot hub device-identity för att skapa en ny IoT-enhet med symmetrisk nyckelautentisering och tilldela en överordnad enhet:
az iot hub device-identity create -n {iothub name} -d {new device ID} --device-scope {deviceScope of parent device}
Dricks
Du kan lista enhetsegenskaper inklusive enhetsomfång med hjälp av az iot hub device-identity list --hub-name {iothub name}.
Hämta och ändra sedan anslutningssträng så att enheten kan ansluta via sin gateway.
Självsignerad X.509-autentisering
För självsignerad X.509-autentisering, som ibland kallas tumavtrycksautentisering, måste du skapa certifikat som ska installeras på din underordnade enhet. Dessa certifikat har ett tumavtryck i sig som du delar med IoT Hub för autentisering.
- Använd certifikatutfärdarcertifikatet och skapa två enhetscertifikat (primära och sekundära) för den underordnade enheten. - Om du inte har någon certifikatutfärdare för att skapa X.509-certifikat kan du använda IoT Edge-democertifikatskripten för att skapa underordnade enhetscertifikat. Följ stegen för att skapa självsignerade certifikat. Använd samma rotcertifikatutfärdarcertifikat som genererade certifikaten för din gatewayenhet. - Om du skapar egna certifikat kontrollerar du att enhetscertifikatets ämnesnamn är inställt på det enhets-ID som du använder när du registrerar IoT-enheten i Azure IoT Hub. Den här inställningen krävs för autentisering. 
- Hämta SHA1-fingeravtrycket (kallas tumavtryck i IoT Hub-gränssnittet) från varje certifikat, vilket är en 40 hexadecimal teckensträng. Använd följande openssl-kommando för att visa certifikatet och hitta fingeravtrycket: - Windows: - openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint
- Linux: - openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
 - Kör det här kommandot två gånger, en gång för det primära certifikatet och en gång för det sekundära certifikatet. Du anger fingeravtryck för båda certifikaten när du registrerar en ny IoT-enhet med självsignerade X.509-certifikat. 
- Gå till din IoT Hub i Azure-portalen och skapa en ny IoT-enhetsidentitet med följande värden: - Ange det enhets-ID som matchar ämnesnamnet för dina enhetscertifikat.
- Välj X.509 Självsignerad som autentiseringstyp.
- Klistra in de hexadecimala strängar som du kopierade från enhetens primära och sekundära certifikat.
- Välj Ange en överordnad enhet och välj den IoT Edge-gatewayenhet som den här nedströmsenheten ansluter via. Du kan alltid ändra överordnad senare.
   
- Kopiera både de primära och sekundära enhetscertifikaten och deras nycklar till valfri plats på den underordnade enheten. Flytta också en kopia av det delade rotcertifikatutfärdarcertifikatet som genererade både gatewayenhetscertifikatet och de underordnade enhetscertifikaten. - Du refererar till dessa certifikatfiler i alla program på den nedströmsenhet som ansluter till IoT Hub. Du kan använda en tjänst som Azure Key Vault eller en funktion som Secure copy protocol för att flytta certifikatfilerna. 
- Beroende på vilket språk du föredrar kan du granska exempel på hur X.509-certifikat kan refereras till i IoT-program: 
Du kan också använda IoT-tillägget för Azure CLI för att slutföra samma åtgärd för att skapa enheter. I följande exempel används kommandot az iot hub device-identity för att skapa en ny IoT-enhet med självsignerad X.509-autentisering och tilldelar en överordnad enhet:
az iot hub device-identity create -n {iothub name} -d {device ID} --device-scope {deviceScope of gateway device} --am x509_thumbprint --ptp {primary thumbprint} --stp {secondary thumbprint}
Dricks
Du kan lista enhetsegenskaper inklusive enhetsomfång med hjälp av az iot hub device-identity list --hub-name {iothub name}.
Hämta och ändra sedan anslutningssträng så att enheten kan ansluta via sin gateway.
X.509 CA-signerad autentisering
För X.509-certifikatutfärdare (CA) signerad autentisering behöver du ett rotcertifikatutfärdarcertifikat som är registrerat i IoT Hub som du använder för att signera certifikat för din underordnade enhet. Alla enheter som använder ett certifikat utfärdat av rotcertifikatet eller något av dess mellanliggande certifikat tillåts autentisera.
En introduktion till hur du använder X.509 CA-certifikat för att autentisera i IoT Hub finns i fördelarna med X.509 CA-certifikatautentisering.
Så här konfigurerar du X.509 CA-signerad autentisering för en nedströmsenhet:
- Hämta ett X.509 CA-certifikat som du kan använda för att signera certifikat för din underordnade enhet. Ett exempel på hur du konfigurerar X.509 CA-signerad autentisering finns i följande exempelscenario. 
- Skapa en certifikatkedja för din underordnade enhet. Om du vill veta mer, följ stegen i skapa en underordnad certifikatutfärdare. 
- Registrera X.509 CA-certifikatet i din IoT Hub. Om du vill veta mer följer du stegen i registrera ditt underordnade CA-certifikat till din IoT Hub. 
- Kopiera enhetscertifikatet och nycklarna till den underordnade enheten. Mer information finns i hantera IoT Edge-certifikat. 
- Registrera enheten med IoT Hub för att använda X.509 CA-signerad autentisering. Mer information finns i Skapa och hantera enhetsidentiteter. 
- Beroende på vilket språk du föredrar kan du granska exempel på hur X.509-certifikat kan refereras till i IoT-program: 
Hämta och ändra anslutningssträng
När du har skapat en IoT-enhetsidentitet i portalen hämtar du dess primära eller sekundära nyckel. Lägg till en av dessa nycklar i anslutningssträngen som program använder för att prata med IoT Hub. För symmetrisk nyckelautentisering visar IoT Hub den fullständiga anslutningssträngen i enhetsinformationen. Lägg till information om gatewayenheten i anslutningssträngen.
En anslutningssträng för en nedströmsenhet behöver följande delar:
- Den IoT Hub som enheten ansluter till: Hostname=<Iot-Hub-Name>.azure-devices.net
- Enhets-ID:t som registrerats med hubben: DeviceID=<Device-ID>
- Autentiseringsmetoden, antingen symmetrisk nyckel eller X.509-certifikat.
- För symmetrisk nyckelautentisering anger du antingen den primära eller sekundära nyckeln: SharedAccessKey=<Key>
- För X.509-certifikatautentisering anger du en flagga: x509=true
 
- För symmetrisk nyckelautentisering anger du antingen den primära eller sekundära nyckeln: 
- Gatewayenheten som enheten ansluter via. Ange värdet för värdnamnet från IoT Edge-gatewayenhetens konfigurationsfil: GatewayHostName=<Gateway-Hostname>
En fullständig anslutningssträng ser ut så här:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice
Eller för X.509-certifikatautentisering:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice
På grund av parent- och child-relationen kan du förenkla anslutningssträngen genom att använda gateway direkt som anslutningsvärd. Till exempel:
HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz
Använd den här ändrade anslutningssträngen i nästa artikel i den transparenta gatewayserien.
Nästa steg
Nu har du en IoT Edge-enhet registrerad med din IoT Hub och konfigurerar den som en transparent gateway. Du har också en nedströmsenhet registrerad med din IoT Hub och pekar på dess gatewayenhet.
Konfigurera sedan din underordnade enhet för att lita på gatewayenheten och ansluta till den på ett säkert sätt. Fortsätt med nästa artikel i den transparenta gatewayserien: Anslut en nedströmsenhet till en Azure IoT Edge-gateway.