Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:
IoT Edge 1.5
Belangrijk
IoT Edge 1.5 LTS is de ondersteunde release. IoT Edge 1.4 LTS is het einde van de levensduur vanaf 12 november 2024. Raadpleeg IoT Edge bijwerken als u een eerdere versie hebt.
In een transparant gatewayscenario hebben downstreamapparaten, ook wel onderliggende apparaten genoemd, identiteiten nodig in IoT Hub, net als elk ander apparaat. In dit artikel worden de opties voor het verifiëren van een downstreamapparaat naar IoT Hub uitgelegd en wordt uitgelegd hoe u de gatewayverbinding declareert.
Notitie
Een downstreamapparaat verzendt gegevens rechtstreeks naar internet of naar gatewayapparaten, ongeacht of deze wel of niet zijn ingeschakeld voor IoT Edge. Een onderliggend apparaat kan een downstreamapparaat of een gatewayapparaat in een geneste topologie zijn.
Er zijn drie algemene stappen voor het instellen van een geslaagde transparante gatewayverbinding. In dit artikel wordt de tweede stap behandeld:
- Configureer het gatewayapparaat als een server, zodat downstreamapparaten er veilig verbinding mee kunnen maken. Stel de gateway in om berichten van downstreamapparaten te ontvangen en door te sturen naar de juiste bestemming. Zie Een IoT Edge-apparaat configureren als een transparante gateway voor deze stappen.
- Maak een apparaat-id voor het downstreamapparaat, zodat het kan worden geverifieerd met IoT Hub. Configureer het downstreamapparaat om berichten via het gatewayapparaat te verzenden.
- Verbind het downstreamapparaat met het gatewayapparaat en begin berichten te verzenden. Zie Een downstreamapparaat verbinden met een Azure IoT Edge-gateway voor deze stappen.
Downstreamapparaten kunnen worden geverifieerd met IoT Hub met behulp van een van de drie methoden: symmetrische sleutels (ook wel gedeelde toegangssleutels genoemd), zelfondertekende X.509-certificaten of X.509-certificeringsinstantie (CA). De verificatiestappen zijn vergelijkbaar met die voor het instellen van een niet-IoT Edge-apparaat met IoT Hub, met kleine verschillen om de gatewayrelatie te declareren.
Automatische inrichting van downstreamapparaten met Azure IoT Hub Device Provisioning Service (DPS) wordt niet ondersteund.
Vereisten
Voltooi de stappen in Een IoT Edge-apparaat configureren om te fungeren als een transparante gateway.
Als u X.509-verificatie gebruikt, genereert u certificaten voor uw downstreamapparaat. Zorg ervoor dat u hetzelfde basis-CA-certificaat en het script voor het genereren van certificaten hebt dat u in het artikel over de transparante gateway hebt gebruikt.
Dit artikel verwijst naar de hostnaam van de gateway op verschillende punten. De hostnaam van de gateway wordt ingesteld in de hostnaamparameter van het configuratiebestand op het IoT Edge-gatewayapparaat. Deze wordt ook gebruikt in de verbindingsreeks van het downstreamapparaat. De hostnaam van de gateway moet worden omgezet in een IP-adres met behulp van DNS of een hostbestandsvermelding op het downstreamapparaat.
Apparaat registreren bij IoT Hub
Kies hoe u uw downstreamapparaat wilt verifiëren met IoT Hub:
Verificatie met symmetrische sleutels: IoT Hub maakt een sleutel die u op het downstreamapparaat plaatst. Wanneer het apparaat wordt geverifieerd, controleert IoT Hub of de twee sleutels overeenkomen. U hoeft geen extra certificaten te maken om symmetrische sleutelverificatie te gebruiken.
Deze methode is sneller om aan de slag te gaan als u gateways test in een ontwikkel- of testscenario.
X.509 zelfondertekende verificatie: ook wel vingerafdrukverificatie genoemd, omdat u de vingerafdruk deelt van het X.509-certificaat van het apparaat met IoT Hub.
Certificaatverificatie wordt aanbevolen voor apparaten in productiescenario's.
X.509 CA-ondertekende verificatie: upload het basis-CA-certificaat naar IoT Hub. Wanneer apparaten hun X.509-certificaat voor verificatie presenteren, controleert IoT Hub of het behoort tot een vertrouwensketen die is ondertekend door hetzelfde basis-CA-certificaat.
Certificaatverificatie wordt aanbevolen voor apparaten in productiescenario's.
Verificatie met symmetrische sleutel
Verificatie met symmetrische sleutels of verificatie van gedeelde toegangssleutels is de eenvoudigste manier om te verifiëren met IoT Hub. Met symmetrische sleutelverificatie wordt een base64-sleutel gekoppeld aan uw IoT-apparaat-id in IoT Hub. U neemt deze sleutel op in uw IoT-toepassingen, zodat uw apparaat deze kan presenteren wanneer het verbinding maakt met IoT Hub.
Voeg een nieuw IoT-apparaat toe in uw IoT Hub met behulp van Azure Portal, Azure CLI of de IoT-extensie voor Visual Studio Code. Houd er rekening mee dat downstreamapparaten moeten worden geïdentificeerd in IoT Hub als gewone IoT-apparaten, niet als IoT Edge-apparaten.
Wanneer u de nieuwe apparaat-id maakt, geeft u de volgende informatie op:
Maak een id voor uw apparaat.
Selecteer symmetrische sleutel als verificatietype.
Selecteer Een bovenliggend apparaat instellen en selecteer het IoT Edge-gatewayapparaat waarmee dit downstreamapparaat verbinding maakt. U kunt het bovenliggende item altijd later wijzigen.
Notitie
Het bovenliggende apparaat instellen als een optionele stap voor downstreamapparaten die gebruikmaken van symmetrische sleutelverificatie. Vanaf IoT Edge versie 1.1.0 moet elk downstreamapparaat echter worden toegewezen aan een bovenliggend apparaat.
U kunt de IoT Edge-hub configureren om terug te gaan naar het vorige gedrag door de omgevingsvariabele AuthenticationMode in te stellen op de waarde CloudAndScope.
U kunt ook de IoT-extensie voor Azure CLI gebruiken om dezelfde bewerking te voltooien. In het volgende voorbeeld wordt de opdracht az iot hub device-identity gebruikt om een nieuw IoT-apparaat te maken met symmetrische sleutelverificatie en een bovenliggend apparaat toe te wijzen:
az iot hub device-identity create -n {iothub name} -d {new device ID} --device-scope {deviceScope of parent device}
Aanbeveling
U kunt apparaateigenschappen, inclusief apparaatbereik, weergeven met behulp van az iot hub device-identity list --hub-name {iothub name}.
Haal vervolgens de verbindingsreeks op en wijzig deze zodat uw apparaat verbinding kan maken via de gateway.
Zelfondertekende X.509-verificatie
Voor zelfondertekende X.509-verificatie, ook wel vingerafdrukverificatie genoemd, moet u certificaten maken om op uw downstreamapparaat te plaatsen. Deze certificaten hebben een vingerafdruk die u deelt met IoT Hub voor verificatie.
Maak met behulp van uw CA-certificaat twee apparaatcertificaten (primair en secundair) voor het downstreamapparaat.
Als u geen certificeringsinstantie hebt om X.509-certificaten te maken, kunt u de democertificaatscripts van IoT Edge gebruiken om downstreamapparaatcertificaten te maken. Volg de stappen voor het maken van zelfondertekende certificaten. Gebruik hetzelfde basis-CA-certificaat dat de certificaten voor uw gatewayapparaat heeft gegenereerd.
Als u uw eigen certificaten maakt, moet u ervoor zorgen dat de onderwerpnaam van het apparaatcertificaat is ingesteld op de apparaat-id die u gebruikt bij het registreren van het IoT-apparaat in de Azure IoT Hub. Deze instelling is vereist voor verificatie.
Haal de SHA1-vingerafdruk (een vingerafdruk genoemd in de IoT Hub-interface) op uit elk certificaat. Dit is een tekenreeks van 40 hexadecimale tekens. Gebruik de volgende openssl-opdracht om het certificaat weer te geven en de vingerafdruk te vinden:
Ramen:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprintLinux:
openssl x509 -in <path to primary device certificate>.cert.pem -text -fingerprint | sed 's/[:]//g'
Voer deze opdracht twee keer uit, eenmaal voor het primaire certificaat en eenmaal voor het secundaire certificaat. U geeft vingerafdrukken op voor beide certificaten wanneer u een nieuw IoT-apparaat registreert met zelfondertekende X.509-certificaten.
Navigeer naar uw IoT Hub in Azure Portal en maak een nieuwe IoT-apparaat-id met de volgende waarden:
- Geef de apparaat-id op die overeenkomt met de onderwerpnaam van uw apparaatcertificaten.
- Selecteer X.509 Zelfondertekend als verificatietype.
- Plak de hexadecimale tekenreeksen die u hebt gekopieerd uit de primaire en secundaire certificaten van uw apparaat.
- Selecteer Een bovenliggende apparaat instellen en kies het IoT Edge-gatewayapparaat dat verbinding maakt met dit downstreamapparaat. U kunt het bovenliggende item altijd later wijzigen.
Kopieer zowel de primaire als de secundaire apparaatcertificaten en de bijbehorende sleutels naar een locatie op het downstreamapparaat. Verplaats ook een kopie van het gedeelde basis-CA-certificaat dat zowel het gatewayapparaatcertificaat als de downstreamapparaatcertificaten heeft gegenereerd.
U verwijst naar deze certificaatbestanden in alle toepassingen op het downstreamapparaat dat verbinding maakt met IoT Hub. U kunt een service zoals Azure Key Vault of een functie zoals secure copy protocol gebruiken om de certificaatbestanden te verplaatsen.
Bekijk voorbeelden van hoe X.509-certificaten kunnen worden verwezen in IoT-toepassingen, afhankelijk van uw voorkeurstaal:
U kunt ook de IoT-extensie voor Azure CLI gebruiken om dezelfde bewerking voor het maken van het apparaat te voltooien. In het volgende voorbeeld wordt de opdracht az iot hub device-identity gebruikt om een nieuw IoT-apparaat met zelfondertekende X.509-verificatie te maken en een bovenliggend apparaat toe te wijzen:
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}
Aanbeveling
U kunt apparaateigenschappen, inclusief apparaatbereik, weergeven met behulp van az iot hub device-identity list --hub-name {iothub name}.
Haal vervolgens de verbindingsreeks op en wijzig deze zodat uw apparaat verbinding kan maken via de gateway.
X.509 CA-ondertekende verificatie
Voor verificatie met X.509-certificeringsinstantie (CA) hebt u een basis-CA-certificaat nodig dat is geregistreerd in IoT Hub waarmee u certificaten voor uw downstreamapparaat ondertekent. Elk apparaat dat gebruikmaakt van een certificaat dat is uitgegeven door het basis-CA-certificaat of een van de tussenliggende certificaten, is toegestaan om te verifiëren.
Zie de voordelen van X.509 CA-certificaatverificatie voor verificatie in IoT Hub voor een inleiding over het gebruik van X.509-CA-certificaten.
Als u X.509 CA-ondertekende verificatie wilt instellen voor een downstreamapparaat, voert u de volgende stappen uit:
Haal een X.509-CA-certificaat op dat u kunt gebruiken om certificaten voor uw downstreamapparaat te ondertekenen. Zie het volgende voorbeeldscenario voor het instellen van X.509 CA-ondertekende verificatie.
Maak een certificaatketen voor uw downstreamapparaat. Volg de stappen in het maken van een onderliggende CA voor meer informatie.
Registreer het X.509-CA-certificaat in uw IoT Hub. Volg de stappen in het registreren van uw onderliggende CA-certificaat voor uw IoT Hub voor meer informatie.
Kopieer het apparaatcertificaat en de sleutels naar het downstreamapparaat. Zie IoT Edge-certificaten beheren voor meer informatie.
Registreer het apparaat bij IoT Hub voor het gebruik van ondertekende X.509-CA-verificatie. Zie Apparaatidentiteiten maken en beheren voor meer informatie.
Bekijk voorbeelden van hoe X.509-certificaten kunnen worden verwezen in IoT-toepassingen, afhankelijk van uw voorkeurstaal:
Verbindingsreeks ophalen en wijzigen
Nadat u een IoT-apparaat-id in de portal hebt gemaakt, haalt u de primaire of secundaire sleutel op. Voeg een van deze sleutels toe aan de verbindingsreeks die toepassingen gebruiken om met IoT Hub te communiceren. Voor symmetrische sleutelverificatie toont IoT Hub de volledige verbindingsreeks in de apparaatdetails. Voeg de gegevens van het gatewayapparaat toe aan de verbindingsreeks.
Voor een verbindingsreeks voor een downstreamapparaat zijn de volgende onderdelen vereist:
- De IoT Hub met het apparaat maakt verbinding met:
Hostname=<Iot-Hub-Name>.azure-devices.net - De apparaat-id die is geregistreerd bij de hub:
DeviceID=<Device-ID> - De verificatiemethode, ofwel een symmetrische sleutel of een X.509-certificaat.
- Voer voor symmetrische sleutelverificatie de primaire of secundaire sleutel in:
SharedAccessKey=<Key> - Geef voor X.509-certificaatverificatie een vlag op:
x509=true
- Voer voor symmetrische sleutelverificatie de primaire of secundaire sleutel in:
- Het gatewayapparaat waar het apparaat verbinding mee maakt. Voer de hostnaamwaarde in van het configuratiebestand van het IoT Edge-gatewayapparaat:
GatewayHostName=<Gateway-Hostname>
Een volledige verbindingsreeks ziet er als volgt uit:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz;GatewayHostName=myGatewayDevice
Of voor X.509-certificaatverificatie:
HostName=myiothub.azure-devices.net;DeviceId=myDownstreamDevice;x509=true;GatewayHostName=myGatewayDevice
Vanwege de ouder-kind relatie kunt u de connectiestring vereenvoudigen door de gateway direct als verbindingshost te gebruiken. Voorbeeld:
HostName=myGatewayDevice;DeviceId=myDownstreamDevice;SharedAccessKey=xxxyyyzzz
Gebruik deze gewijzigde verbindingsreeks in het volgende artikel in de transparante gatewayreeks.
Volgende stappen
Op dit moment hebt u een IoT Edge-apparaat geregistreerd bij uw IoT Hub en ingesteld als een transparante gateway. U heeft ook een downstreamapparaat geregistreerd bij uw IoT Hub dat wijst naar zijn gatewayapparaat.
Stel vervolgens uw downstreamapparaat in om het gatewayapparaat te vertrouwen en er veilig verbinding mee te maken. Ga verder met het volgende artikel in de transparante gatewayreeks: Een downstreamapparaat verbinden met een Azure IoT Edge-gateway.