Quickstart: Een gesimuleerd X.509-certificaatapparaat inrichten
In deze quickstart maakt u een gesimuleerd apparaat op uw Windows-computer. Het gesimuleerde apparaat is geconfigureerd voor het gebruik van X.509-certificaatverklaring voor verificatie. Nadat u uw apparaat hebt geconfigureerd, richt u het vervolgens in op uw IoT-hub met behulp van de Azure IoT Hub Device Provisioning Service.
Als u niet bekend bent met het inrichtingsproces, raadpleegt u het inrichtingsoverzicht . Controleer ook of u de stappen in IoT Hub Device Provisioning Service instellen met Azure Portal hebt voltooid voordat u verdergaat.
In deze quickstart ziet u een oplossing voor een Windows-werkstation. U kunt echter ook de procedures op Linux uitvoeren. Zie Zelfstudie: Inrichten voor geolatentie voor een Linux-voorbeeld.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Voer de stappen uit in IoT Hub Device Provisioning Service instellen met Azure Portal.
De volgende vereisten gelden voor een ontwikkelomgeving in Windows. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
Installeer Visual Studio 2022 met de workload Desktopontwikkeling met C++ . Visual Studio 2015, Visual Studio 2017 en Visual Studio 19 worden ook ondersteund. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
Installeer het nieuwste CMake-buildsysteem. Controleer de optie waarmee het uitvoerbare CMake-bestand aan uw pad wordt toegevoegd.
Belangrijk
Controleer of de vereisten voor Visual Studio (Visual Studio en de workload Desktopontwikkeling met C++) op uw computer zijn geïnstalleerd voordat u de
CMake
installatie start. Zodra aan de vereisten is voldaan en de download is geverifieerd, installeert u het CMake-bouwsysteem. Houd er ook rekening mee dat oudere versies van het CMake-buildsysteem het oplossingsbestand dat in dit artikel wordt gebruikt, niet kunnen genereren. Zorg ervoor dat u de nieuwste versie van CMake gebruikt.
De volgende vereisten gelden voor een ontwikkelomgeving in Windows. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
Installeer .NET SDK 6.0 of hoger op uw Windows-computer. U kunt de volgende opdracht gebruiken om uw versie te controleren.
dotnet --info
De volgende vereisten gelden voor een ontwikkelomgeving in Windows. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
- Installeer Node.js v4.0 of hoger op uw computer.
De volgende vereisten gelden voor een ontwikkelomgeving in Windows.
- Python 3.6 of hoger op uw computer.
De volgende vereisten gelden voor een ontwikkelomgeving in Windows. Voor Linux of macOS raadpleegt u het desbetreffende gedeelte in Uw ontwikkelomgeving voorbereiden in de SDK-documentatie.
Installeer de Java SE Development Kit 8 of hoger op uw computer.
Download en installeer Maven.
Installeer de meest recente versie van Git. Zorg ervoor dat Git is toegevoegd aan de omgevingsvariabelen die toegankelijk zijn voor het opdrachtvenster. Zie de Git-clienthulpprogramma's van Software Freedom Conservancy voor de nieuwste versie van
git
hulpprogramma's die u kunt installeren, waaronder Git Bash, de opdrachtregel-app die u kunt gebruiken om te communiceren met uw lokale Git-opslagplaats.Zorg ervoor dat OpenSSL op uw computer is geïnstalleerd. In Windows bevat uw installatie van Git een installatie van OpenSSL. U kunt OpenSSL openen via de Git Bash-prompt. Als u wilt controleren of OpenSSL is geïnstalleerd, opent u een Git Bash-prompt en voert u deze in
openssl version
.Notitie
Tenzij u bekend bent met OpenSSL en deze al op uw Windows-computer hebt geïnstalleerd, raden we u aan OpenSSL te gebruiken vanuit de Git Bash-prompt. U kunt er ook voor kiezen om de broncode te downloaden en OpenSSL te bouwen. Zie de pagina OpenSSL Downloads voor meer informatie. U kunt ook OpenSSL vooraf downloaden van een derde partij. Zie de OpenSSL-wiki voor meer informatie. Microsoft biedt geen garanties over de geldigheid van pakketten die van derden zijn gedownload. Als u ervoor kiest om OpenSSL te bouwen of te downloaden, moet u ervoor zorgen dat het binaire bestand openSSL toegankelijk is in uw pad en dat de
OPENSSL_CNF
omgevingsvariabele is ingesteld op het pad van het bestand openssl.cnf .Open zowel een Windows-opdrachtprompt als een Git Bash-prompt.
Bij de stappen in deze quickstart wordt ervan uitgegaan dat u een Windows-computer en de OpenSSL-installatie gebruikt die is geïnstalleerd als onderdeel van Git. U gebruikt de Git Bash-prompt om OpenSSL-opdrachten uit te voeren en de Windows-opdrachtprompt voor alles anders. Als u Linux gebruikt, kunt u alle opdrachten uit een Bash-shell uitgeven.
Uw ontwikkelomgeving voorbereiden
In deze sectie bereidt u een ontwikkelomgeving voor die wordt gebruikt om de Azure IoT C SDK te bouwen. De voorbeeldcode probeert het apparaat in te richten tijdens de opstartvolgorde van het apparaat.
Open een webbrowser en ga naar de releasepagina van de Azure IoT C SDK.
Selecteer het tabblad Tags boven aan de pagina.
Kopieer de tagnaam voor de nieuwste versie van de Azure IoT C SDK.
Voer in de Windows-opdrachtprompt de volgende opdrachten uit om de nieuwste versie van de Azure IoT Device SDK voor C GitHub-opslagplaats te klonen. Vervang
<release-tag>
door de tag die u in de vorige stap hebt gekopieerd, bijvoorbeeld:lts_01_2023
.git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git cd azure-iot-sdk-c git submodule update --init
Het kan enkele minuten duren voordat deze bewerking is voltooid.
Wanneer de bewerking is voltooid, voert u de volgende opdrachten uit vanuit de
azure-iot-sdk-c
map:mkdir cmake cd cmake
De voorbeeldcode gebruikt een X.509-certificaat voor attestation via x.509-verificatie. Voer de volgende opdracht uit om een versie van de SDK te bouwen die specifiek is voor uw platform voor ontwikkeling dat de client voor apparaatinrichting bevat. Er wordt een Visual Studio-oplossing voor het gesimuleerde apparaat gegenereerd in de map
cmake
.Wanneer u het pad opgeeft waarmee
-Dhsm_custom_lib
in de volgende opdracht wordt gebruikt, moet u het absolute pad naar de bibliotheek gebruiken in decmake
map die u eerder hebt gemaakt. In het weergegeven pad wordt ervan uitgegaan dat u de C SDK hebt gekloond in de hoofdmap van het C-station. Als u een andere map hebt gebruikt, past u het pad dienovereenkomstig aan.
Tip
Als cmake
uw C++-compiler niet wordt gevonden, krijgt u mogelijk buildfouten tijdens het uitvoeren van de bovenstaande opdracht. Als dit gebeurt, voert u de opdracht uit in de Visual Studio-opdrachtprompt.
Wanneer de build slaagt, zien de laatste paar uitvoerlijnen er ongeveer als volgt uit:
-- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000. -- The C compiler identification is MSVC 19.32.31329.0 -- The CXX compiler identification is MSVC 19.32.31329.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/azure-iot-sdk-c/cmake
Kloon in de Windows-opdrachtprompt de Azure IoT SDK voor C# GitHub-opslagplaats met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-iot-sdk-csharp.git
Kloon in uw Windows-opdrachtprompt de Azure IoT SDK voor Node.js GitHub-opslagplaats met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-iot-sdk-node.git
Kloon in de Windows-opdrachtprompt de Azure IoT Device SDK voor Python GitHub-opslagplaats met behulp van de volgende opdracht:
git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
Notitie
De voorbeelden die in deze zelfstudie worden gebruikt, bevinden zich in de v2-vertakking van de opslagplaats azure-iot-sdk-python. V3 van de Python SDK is beschikbaar voor gebruik in bètaversie.
Kloon in uw Windows-opdrachtprompt de Azure IoT-voorbeelden voor Java GitHub-opslagplaats met behulp van de volgende opdracht:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Ga naar de hoofdmap
azure-iot-sdk-java
en bouw het project om alle benodigde pakketten te downloaden.cd azure-iot-sdk-java mvn install -DskipTests=true
Een zelfondertekend X.509-apparaatcertificaat maken
In deze sectie gebruikt u OpenSSL om een zelfondertekend X.509-certificaat en een persoonlijke sleutel te maken. Dit certificaat wordt geüpload naar uw exemplaar van de inrichtingsservice en geverifieerd door de service.
Let op
Gebruik alleen certificaten die zijn gemaakt met OpenSSL in deze quickstart voor ontwikkelingstests. Gebruik deze certificaten niet in een productieomgeving. Deze certificaten verlopen na 30 dagen en bevatten mogelijk in code vastgelegde wachtwoorden, zoals 1234. Zie Een X.509 CA-certificaat verkrijgen in de Documentatie van Azure IoT Hub voor meer informatie over het verkrijgen van certificaten die geschikt zijn voor gebruik in productie.
Voer de stappen in deze sectie uit in uw Git Bash-prompt.
Navigeer in uw Git Bash-prompt naar een map waarin u uw certificaten wilt maken.
Voer de volgende opdracht uit:
winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"
Belangrijk
De extra slash die wordt opgegeven voor de onderwerpnaam (
//CN=my-x509-device
) is alleen vereist om de tekenreeks te escapen met Git op Windows-platforms.Wanneer u wordt gevraagd om PEM-wachtwoordzin in te voeren:, gebruikt u de wachtwoordzin
1234
.Wanneer u wordt gevraagd te verifiëren - VOER PEM-wachtwoordzin in:, gebruikt u de wachtwoordzin
1234
opnieuw.Er moet nu een certificaatbestand met een openbare sleutel (device-cert.pem) en een persoonlijk sleutelbestand (device-key.pem) worden gegenereerd in de map waarin u de
openssl
opdracht hebt uitgevoerd.Het certificaatbestand heeft de algemene naam van het onderwerp (CN) ingesteld op
my-x509-device
. Voor X.509-gebaseerde inschrijvingen wordt de registratie-id ingesteld op de algemene naam. De registratie-id is een niet-hoofdlettergevoelige tekenreeks van alfanumerieke tekens plus de speciale tekens:'-'
,'.'
,'_'
, .':'
Het laatste teken moet alfanumeriek of streepje ('-'
) zijn. De algemene naam moet voldoen aan deze indeling. DPS ondersteunt registratie-id's van maximaal 128 tekens; De maximale lengte van de algemene naam van het onderwerp in een X.509-certificaat is echter 64 tekens. De registratie-id is daarom beperkt tot 64 tekens bij het gebruik van X.509-certificaten.Het certificaatbestand is base 64 gecodeerd. Als u de algemene naam van het onderwerp (CN) en andere eigenschappen van het certificaatbestand wilt weergeven, voert u de volgende opdracht in:
Certificate: Data: Version: 3 (0x2) Serial Number: 77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = my-x509-device Validity Not Before: May 5 21:41:42 2022 GMT Not After : Jun 4 21:41:42 2022 GMT Subject: CN = my-x509-device Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7: e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29: ... 23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f: 9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85: 0e:cd:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Authority Key Identifier: keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption 82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a: ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1: ... cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c: ac:d2:49:b9:36:d2:b0:21
Voor de voorbeeldcode is een persoonlijke sleutel vereist die niet is versleuteld. Voer de volgende opdracht uit om een niet-versleutelde persoonlijke sleutel te maken:
Wanneer u wordt gevraagd wachtwoordzin in te voeren voor device-key.pem:, gebruikt u dezelfde wachtwoordzin die u eerder hebt gedaan.
1234
Houd de Git Bash-prompt open. U hebt deze later in deze quickstart nodig.
De C#-voorbeeldcode is ingesteld voor het gebruik van X.509-certificaten die zijn opgeslagen in een met een wachtwoord beveiligd PKCS#12-bestand (certificate.pfx
). U hebt nog steeds het met PEM opgemaakte openbare-sleutelcertificaatbestand (device-cert.pem
) nodig dat u zojuist hebt gemaakt om een afzonderlijke inschrijvingsvermelding te maken verderop in deze quickstart.
Voer de volgende opdracht in om het bestand met de PKCS12-indeling te genereren dat door het voorbeeld wordt verwacht:
Wanneer u wordt gevraagd wachtwoordzin in te voeren voor device-key.pem:, gebruikt u dezelfde wachtwoordzin die u eerder hebt gedaan.
1234
Wanneer u wordt gevraagd om Exportwachtwoord in te voeren: gebruikt u het wachtwoord
1234
.Gebruik het wachtwoord opnieuw wanneer u wordt gevraagd te verifiëren - Voer een exportwachtwoord
1234
in:Er moet nu een bestand met pkCS12-indeling (certificate.pfx) worden gegenereerd in de map waarin u de
openssl
opdracht hebt uitgevoerd.Kopieer het met PKCS12 opgemaakte certificaatbestand naar de projectmap voor het voorbeeld van het inrichten van X.509-apparaten. Het opgegeven pad is relatief ten opzichte van de locatie waar u de voorbeeldopslagplaats hebt gedownload.
cp certificate.pfx ./azure-iot-sdk-csharp/provisioning/device/samples/"Getting Started"/X509Sample
U hebt de Git Bash-prompt niet nodig voor de rest van deze quickstart. Het is echter mogelijk dat u het certificaat open wilt houden om uw certificaat te controleren als u in latere stappen problemen ondervindt.
Voor de voorbeeldcode is een persoonlijke sleutel vereist die niet is versleuteld. Voer de volgende opdracht uit om een niet-versleutelde persoonlijke sleutel te maken:
Wanneer u wordt gevraagd wachtwoordzin in te voeren voor device-key.pem:, gebruikt u dezelfde wachtwoordzin die u eerder hebt gedaan.
1234
Kopieer het apparaatcertificaat en de niet-versleutelde persoonlijke sleutel naar de projectmap voor het X.509-apparaatinrichtingsvoorbeeld. Het opgegeven pad is relatief ten opzichte van de locatie waar u de SDK hebt gedownload.
cp device-cert.pem ./azure-iot-sdk-node/provisioning/device/samples cp unencrypted-device-key.pem ./azure-iot-sdk-node/provisioning/device/samples
U hebt de Git Bash-prompt niet nodig voor de rest van deze quickstart. Het is echter mogelijk dat u het certificaat open wilt houden om uw certificaat te controleren als u in latere stappen problemen ondervindt.
Kopieer het apparaatcertificaat en de persoonlijke sleutel naar de projectmap voor het voorbeeld van het inrichten van X.509-apparaten. Het opgegeven pad is relatief ten opzichte van de locatie waar u de SDK hebt gedownload.
cp device-cert.pem ./azure-iot-sdk-python/samples/async-hub-scenarios cp device-key.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
U hebt de Git Bash-prompt niet nodig voor de rest van deze quickstart. Het is echter mogelijk dat u het certificaat open wilt houden om uw certificaat te controleren als u in latere stappen problemen ondervindt.
Voor de Java-voorbeeldcode is een persoonlijke sleutel vereist die niet is versleuteld. Voer de volgende opdracht uit om een niet-versleutelde persoonlijke sleutel te maken:
Wanneer u wordt gevraagd wachtwoordzin in te voeren voor device-key.pem:, gebruikt u dezelfde wachtwoordzin die u eerder hebt gedaan.
1234
Houd de Git Bash-prompt open. U hebt deze later in deze quickstart nodig.
Een apparaatinschrijving maken
Azure IoT Device Provisioning Service ondersteunt twee typen inschrijvingen:
- Registratiegroepen: wordt gebruikt om meerdere gerelateerde apparaten in te schrijven.
- Afzonderlijke inschrijvingen: wordt gebruikt om één apparaat in te schrijven.
In dit artikel wordt een afzonderlijke inschrijving gedemonstreerd voor één apparaat dat moet worden ingericht met een IoT-hub.
Meld u aan bij Azure Portal en navigeer naar uw Device Provisioning Service-exemplaar.
Selecteer Inschrijvingen beheren in de sectie Instellingen van het navigatiemenu.
Selecteer het tabblad Afzonderlijke inschrijvingen en selecteer vervolgens Afzonderlijke inschrijving toevoegen.
Geef op de pagina Registratie en inrichting van de pagina Inschrijving toevoegen de volgende informatie op om de inschrijvingsgegevens te configureren:
Veld Beschrijving Attest Selecteer X.509-clientcertificaten als attestation-mechanisme. X.509-certificaatinstellingen Upload een of twee certificaten die worden gebruikt om het apparaat voor deze inschrijving te verifiëren. Inrichtingsstatus Schakel het selectievakje Deze inschrijving inschakelen in als u wilt dat deze inschrijving beschikbaar is om het apparaat in te richten. Schakel dit selectievakje uit als u wilt dat de inschrijving wordt uitgeschakeld. U kunt deze instelling later wijzigen. Beleid voor opnieuw inrichten Kies een beleid voor opnieuw inrichten dat aangeeft hoe DPS apparaten verwerkt die herinrichting aanvragen. Zie Beleid voor opnieuw inrichten voor meer informatie. Selecteer Volgende: IoT-hubs.
Geef op het tabblad IoT Hubs van de pagina Inschrijving toevoegen de volgende informatie op om te bepalen voor welke IoT-hubs de inschrijving apparaten kan inrichten:
Veld Beschrijving IoT-doelhubs Selecteer een of meer gekoppelde IoT-hubs of voeg een nieuwe koppeling toe aan een IoT-hub. Zie IoT-hubs koppelen en beheren voor meer informatie over het koppelen van IoT-hubs aan uw DPS-exemplaar. Toewijzingsbeleid Als u meer dan één gekoppelde IoT-hub hebt geselecteerd, selecteert u hoe u apparaten wilt toewijzen aan de verschillende hubs. Zie Toewijzingsbeleid gebruiken voor meer informatie over toewijzingsbeleid.
Als u slechts één gekoppelde IoT-hub hebt geselecteerd, raden we u aan het gelijkmatig gewogen distributiebeleid te gebruiken.Volgende selecteren: Apparaatinstellingen
Geef op het tabblad Apparaatinstellingen van de pagina Inschrijving toevoegen de volgende informatie op om te definiëren hoe nieuw ingerichte apparaten worden geconfigureerd:
Veld Beschrijving Apparaat-id Geef een apparaat-id op die wordt toegewezen aan het ingerichte apparaat in IoT Hub. Als u geen apparaat-id opgeeft, wordt de registratie-id gebruikt. IoT Edge Schakel IoT Edge in op ingerichte apparaten als op het ingerichte apparaat Azure IoT Edge wordt uitgevoerd. Schakel dit selectievakje uit als deze inschrijving is bedoeld voor een apparaat dat niet is ingeschakeld voor IoT Edge. Apparaattags Gebruik dit tekstvak om alle tags op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Gewenste eigenschappen Gebruik dit tekstvak om de gewenste eigenschappen op te geven die u wilt toepassen op de apparaatdubbel van het ingerichte apparaat. Zie Apparaatdubbels begrijpen en gebruiken in IoT Hub voor meer informatie.
Selecteer Volgende: Beoordelen en maken.
Controleer op het tabblad Controleren en maken al uw waarden en selecteer Vervolgens Maken.
De apparaatinrichtingscode voorbereiden en uitvoeren
In deze sectie werkt u de voorbeeldcode bij om de opstartvolgorde van het apparaat te verzenden naar uw Device Provisioning Service-exemplaar. Deze opstartvolgorde zorgt ervoor dat het apparaat wordt herkend en toegewezen aan een IoT-hub die is gekoppeld aan het DPS-exemplaar.
In deze sectie gebruikt u uw Git Bash-prompt en de Visual Studio IDE.
De code voor de apparaatinrichting configureren
In deze sectie werkt u de voorbeeldcode bij met de informatie van uw Device Provisioning Service-exemplaar.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik .
Start Visual Studio en open het nieuwe oplossingsbestand dat is gemaakt in de map
cmake
die u hebt gemaakt in de hoofdmap van de Git-opslagplaats azure-iot-sdk-c. Het oplossingsbestand heeft de naamazure_iot_sdks.sln
.Navigeer in Solution Explorer voor Visual Studio naar Provision_Samples > prov_dev_client_sample > bronbestanden en open prov_dev_client_sample.c.
Zoek de constante en vervang de
id_scope
waarde door de waarde van het id-bereik die u in stap 2 hebt gekopieerd.static const char* id_scope = "0ne00000A0A";
Zoek de definitie voor de functie
main()
op in hetzelfde bestand. Zorg ervoor dat dehsm_type
variabele is ingesteld opSECURE_DEVICE_TYPE_X509
.SECURE_DEVICE_TYPE hsm_type; //hsm_type = SECURE_DEVICE_TYPE_TPM; hsm_type = SECURE_DEVICE_TYPE_X509; //hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
Sla uw wijzigingen op.
Klik met de rechtermuisknop op het prov_dev_client_sample project en selecteer Instellen als opstartproject.
De stub-code voor de aangepaste HSM configureren
De bijzonderheden van de interactie met de daadwerkelijke beveiligde opslag op basis van hardware is afhankelijk van de hardware. Als gevolg hiervan worden het certificaat en de persoonlijke sleutel die door het gesimuleerde apparaat in deze quickstart wordt gebruikt, vastgelegd in de stubcode van de aangepaste HSM (Hardware Security Module).
De aangepaste HSM-stubcode bijwerken om de identiteit van het apparaat met id my-x509-device
te simuleren:
Navigeer in Solution Explorer voor Visual Studio naar Provision_Samples > custom_hsm_example > bronbestanden en open custom_hsm_example.c.
Werk de tekenreekswaarde van de
COMMON_NAME
tekenreeksconstante bij met behulp van de algemene naam die u hebt gebruikt bij het genereren van het apparaatcertificaat.my-x509-device
static const char* const COMMON_NAME = "my-x509-device";
Werk de tekenreekswaarde van de
CERTIFICATE
constante tekenreeks bij met behulp van het apparaatcertificaat device-cert.pem, dat u eerder hebt gegenereerd.De syntaxis van certificaattekst in het voorbeeld moet het volgende patroon volgen zonder extra spaties of parsering uitgevoerd door Visual Studio.
static const char* const CERTIFICATE = "-----BEGIN CERTIFICATE-----\n" "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" "-----END CERTIFICATE-----";
Het handmatig bijwerken van deze tekenreekswaarde kan gevoelig zijn voor fouten. Als u de juiste syntaxis wilt genereren, kunt u de volgende opdracht kopiëren en plakken in uw Git Bash-prompt en drukt u op Enter. Met deze opdracht wordt de syntaxis voor de
CERTIFICATE
constante tekenreekswaarde gegenereerd en naar de uitvoer geschreven.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' device-cert.pem
Kopieer en plak de tekst van het uitvoercertificaat voor de constante waarde.
Werk de tekenreekswaarde van de
PRIVATE_KEY
constante bij met de niet-versleutelde persoonlijke sleutel voor uw apparaatcertificaat, niet-versleutelde-device-key.pem.De syntaxis van de persoonlijke-sleuteltekst moet het volgende patroon volgen zonder extra spaties of parsering uitgevoerd door Visual Studio.
static const char* const PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" "-----END RSA PRIVATE KEY-----";
Het handmatig bijwerken van deze tekenreekswaarde kan gevoelig zijn voor fouten. Als u de juiste syntaxis wilt genereren, kunt u de volgende opdracht kopiëren en plakken in uw Git Bash-prompt en drukt u op Enter. Met deze opdracht wordt de syntaxis voor de
PRIVATE_KEY
constante tekenreekswaarde gegenereerd en naar de uitvoer geschreven.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' unencrypted-device-key.pem
Kopieer en plak de tekst van de persoonlijke sleutel van de uitvoer voor de constante waarde.
Sla uw wijzigingen op.
Klik met de rechtermuisknop op het custom_hsm_-_example project en selecteer Build.
Belangrijk
U moet het custom_hsm_example project bouwen voordat u de rest van de oplossing in de volgende sectie bouwt.
De voorbeeldtoepassing uitvoeren
Selecteer in het menu van Visual Studio de optie Debug>Start without debugging om de oplossing uit te voeren. Als u wordt gevraagd om het project opnieuw te bouwen, selecteert u Ja om het project opnieuw te bouwen voordat u het uitvoert.
De volgende uitvoer is een voorbeeld van het gesimuleerde apparaat
my-x509-device
dat is opgestart en verbinding maakt met de inrichtingsservice. Het apparaat is toegewezen aan een IoT-hub en geregistreerd:Provisioning API Version: 1.8.0 Registering Device Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: contoso-iot-hub-2.azure-devices.net, deviceId: my-x509-device Press enter key to exit:
In deze sectie gebruikt u de Windows-opdrachtprompt.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik .
Ga in de Windows-opdrachtprompt naar de map X509Sample. Deze map bevindt zich in de map .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample uit de map waar u de voorbeelden op uw computer hebt gekloond.
Voer de volgende opdracht in om het X.509-voorbeeld van het inrichten van apparaten te bouwen en uit te voeren (vervang de
<IDScope>
waarde door het id-bereik dat u in de vorige sectie hebt gekopieerd. Het certificaatbestand wordt standaard ingesteld op ./certificate.pfx en vraagt om het PFX-wachtwoord.dotnet run -- -s <IDScope>
Als u het certificaat en wachtwoord als parameter wilt doorgeven, kunt u de volgende indeling gebruiken.
Notitie
Aanvullende parameters kunnen worden doorgegeven tijdens het uitvoeren van de toepassing om het TransportType (-t) en het GlobalDeviceEndpoint (-g) te wijzigen.
dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234
Het apparaat maakt verbinding met DPS en wordt toegewezen aan een IoT-hub. Vervolgens verzendt het apparaat een telemetriebericht naar de IoT-hub.
Loading the certificate... Enter the PFX password for certificate.pfx: **** Found certificate: A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device; PrivateKey: True Using certificate A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device Initializing the device provisioning client... Initialized for registration Id my-x509-device. Registering with the device provisioning service... Registration status: Assigned. Device my-x509-device registered to MyExampleHub.azure-devices.net. Creating X509 authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
In deze sectie gebruikt u de Windows-opdrachtprompt.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarde van het id-bereik .
Ga in de Windows-opdrachtprompt naar de voorbeeldmap en installeer de pakketten die nodig zijn voor het voorbeeld. Het weergegeven pad is relatief ten opzichte van de locatie waar u de SDK hebt gekloond.
cd .\azure-iot-sdk-node\provisioning\device\samples npm install
In het voorbeeld worden vijf omgevingsvariabelen gebruikt om een IoT-apparaat te verifiëren en in te richten met DPS. Deze omgevingsvariabelen zijn:
Variabelenaam Beschrijving PROVISIONING_HOST
Het eindpunt dat moet worden gebruikt om verbinding te maken met uw DPS-exemplaar. Gebruik voor deze quickstart het globale eindpunt. global.azure-devices-provisioning.net
PROVISIONING_IDSCOPE
Het id-bereik voor uw DPS-exemplaar. PROVISIONING_REGISTRATION_ID
De registratie-id voor uw apparaat. Deze moet overeenkomen met de algemene naam van het onderwerp in het apparaatcertificaat. CERTIFICATE_FILE
Het pad naar het certificaatbestand van het apparaat. KEY_FILE
Het pad naar het persoonlijke sleutelbestand van uw apparaat. Voeg omgevingsvariabelen toe voor het globale apparaateindpunt en id-bereik. Vervang
<id-scope>
door de waarde die u in stap 2 hebt gekopieerd.set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<id-scope>
Stel de omgevingsvariabele in voor de apparaatregistratie-id. De registratie-id voor het IoT-apparaat moet overeenkomen met de algemene naam van het onderwerp op het apparaatcertificaat. Als u de stappen in deze quickstart hebt gevolgd om een zelfondertekend testcertificaat te genereren,
my-x509-device
is dit zowel de onderwerpnaam als de registratie-id voor het apparaat.set PROVISIONING_REGISTRATION_ID=my-x509-device
Stel de omgevingsvariabelen in voor het apparaatcertificaat en (niet-versleutelde) persoonlijke sleutelbestanden van het apparaat.
set CERTIFICATE_FILE=.\device-cert.pem set KEY_FILE=.\unencrypted-device-key.pem
Voer het voorbeeld uit en controleer of het apparaat is ingericht.
node register_x509.js
Als het goed is, ziet u uitvoer die lijkt op het volgende voorbeeld:
registration succeeded assigned hub=contoso-hub-2.azure-devices.net deviceId=my-x509-device Client connected send status: MessageEnqueued
In deze sectie gebruikt u de Windows-opdrachtprompt.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarden voor het id-bereik en het globale apparaateindpunt.
Ga in de Windows-opdrachtprompt naar de map van het provision_x509.py voorbeeld. Het weergegeven pad is relatief ten opzichte van de locatie waar u de SDK hebt gekloond.
cd ./azure-iot-sdk-python/samples/async-hub-scenarios
In dit voorbeeld worden zes omgevingsvariabelen gebruikt om een IoT-apparaat te verifiëren en in te richten met DPS. Deze omgevingsvariabelen zijn:
Variabelenaam Beschrijving PROVISIONING_HOST
Het globale eindpunt dat wordt gebruikt om verbinding te maken met uw DPS-exemplaar. PROVISIONING_IDSCOPE
Het id-bereik voor uw DPS-exemplaar. DPS_X509_REGISTRATION_ID
De registratie-id voor uw apparaat. Deze moet ook overeenkomen met de onderwerpnaam op het apparaatcertificaat. X509_CERT_FILE
Het pad naar het certificaatbestand van het apparaat. X509_KEY_FILE
Het pad naar het persoonlijke sleutelbestand van het apparaatcertificaat. PASS_PHRASE
De wachtwoordzin die u hebt gebruikt om het certificaat en het persoonlijke sleutelbestand () te versleutelen. 1234
Voeg de omgevingsvariabelen toe voor het globale apparaateindpunt en id-bereik.
set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>
Stel de omgevingsvariabele in voor de registratie-id. De registratie-id voor het IoT-apparaat moet overeenkomen met de onderwerpnaam op het apparaatcertificaat. Als u de stappen in deze quickstart hebt gevolgd om een zelfondertekend testcertificaat te genereren,
my-x509-device
is dit zowel de onderwerpnaam als de registratie-id voor het apparaat.set DPS_X509_REGISTRATION_ID=my-x509-device
Stel de omgevingsvariabelen in voor het certificaatbestand, het persoonlijke-sleutelbestand en de wachtwoordzin.
set X509_CERT_FILE=./device-cert.pem set X509_KEY_FILE=./device-key.pem set PASS_PHRASE=1234
Bekijk de code voor provision_x509.py. Als u python versie 3.7 of hoger niet gebruikt, moet u de hier genoemde codewijziging doorvoeren om uw wijzigingen te vervangen
asyncio.run(main())
en op te slaan.Voet het voorbeeld uit. Het voorbeeld maakt verbinding met DPS, die het apparaat inricht op een IoT-hub. Nadat het apparaat is ingericht, verzendt het voorbeeld enkele testberichten naar de IoT-hub.
$ python azure-iot-sdk-python/samples/async-hub-scenarios/provision_x509.py RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2. Setting timer. The complete registration result is my-x509-device TestHub12345.azure-devices.net initialAssignment null Will send telemetry from the provisioned device sending message #4 sending message #7 sending message #2 sending message #8 sending message #5 sending message #9 sending message #1 sending message #6 sending message #10 sending message #3 done sending message #4 done sending message #7 done sending message #2 done sending message #8 done sending message #5 done sending message #9 done sending message #1 done sending message #6 done sending message #10 done sending message #3
In deze sectie gebruikt u zowel uw Windows-opdrachtprompt als uw Git Bash-prompt.
Selecteer in Azure Portal het tabblad Overzicht voor Device Provisioning Service.
Kopieer de waarden voor het id-bereik en het globale apparaateindpunt.
Navigeer in de Windows-opdrachtprompt naar de voorbeeldprojectmap. Het weergegeven pad is relatief ten opzichte van de locatie waar u de SDK hebt gekloond
cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sample
Voer de inrichtingsservice en X.509-identiteitsgegevens in de voorbeeldcode in. Deze informatie wordt gebruikt tijdens het inrichten, voor attestation van het gesimuleerde apparaat, vóór de apparaatregistratie.
Open het bestand
.\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.java
in uw favoriete editor.Werk de volgende waarden bij met het globale eindpunt id-bereik en inrichtingsservice dat u eerder hebt gekopieerd.
private static final String idScope = "[Your ID scope here]"; private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]"; private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;
Werk de waarde van de
leafPublicPem
constante tekenreeks bij met de waarde van uw certificaat, device-cert.pem.De syntaxis van certificaattekst moet het volgende patroon volgen zonder extra spaties of tekens.
private static final String leafPublicPem = "-----BEGIN CERTIFICATE-----\n" + "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" + ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" + "-----END CERTIFICATE-----";
Het handmatig bijwerken van deze tekenreekswaarde kan gevoelig zijn voor fouten. Als u de juiste syntaxis wilt genereren, kunt u de volgende opdracht kopiëren en plakken in uw Git Bash-prompt en drukt u op Enter. Met deze opdracht wordt de syntaxis voor de
leafPublicPem
constante tekenreekswaarde gegenereerd en naar de uitvoer geschreven.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' device-cert.pem
Kopieer en plak de tekst van het uitvoercertificaat voor de constante waarde.
Werk de tekenreekswaarde van de
leafPrivateKey
constante bij met de niet-versleutelde persoonlijke sleutel voor uw apparaatcertificaat, niet-versleutelde-device-key.pem.De syntaxis van de tekst van de persoonlijke sleutel moet het volgende patroon volgen zonder extra spaties of tekens.
private static final String leafPrivateKey = "-----BEGIN PRIVATE KEY-----\n" + "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" + ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" + "-----END PRIVATE KEY-----";
Het handmatig bijwerken van deze tekenreekswaarde kan gevoelig zijn voor fouten. Als u de juiste syntaxis wilt genereren, kunt u de volgende opdracht kopiëren en plakken in uw Git Bash-prompt en drukt u op Enter. Met deze opdracht wordt de syntaxis voor de
leafPrivateKey
constante tekenreekswaarde gegenereerd en naar de uitvoer geschreven.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' unencrypted-device-key.pem
Kopieer en plak de tekst van de persoonlijke sleutel van de uitvoer voor de constante waarde.
Sla uw wijzigingen op.
Bouw het voorbeeld en ga vervolgens naar de
target
map.mvn clean install cd target
De build-uitvoer .jar bestand in de
target
map met de volgende bestandsindeling:provisioning-x509-sample-{version}-with-deps.jar
; bijvoorbeeld:provisioning-x509-sample-1.8.1-with-deps.jar
. Voer het .jar-bestand uit. Mogelijk moet u de versie in de volgende opdracht vervangen.java -jar ./provisioning-x509-sample-1.8.1-with-deps.jar
Het voorbeeld maakt verbinding met DPS, die het apparaat inricht op een IoT-hub. Nadat het apparaat is ingericht, verzendt het voorbeeld enkele testberichten naar de IoT-hub.
Starting... Beginning setup. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. 2022-05-11 09:42:05,025 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.0 2022-05-11 09:42:05,027 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread... Waiting for Provisioning Service to register 2022-05-11 09:42:05,030 INFO (global.azure-devices-provisioning.net-6255a8ba-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service... 2022-05-11 09:42:05,252 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message 2022-05-11 09:42:05,286 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using x509 certificates 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device... 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING Waiting for Provisioning Service to register 2022-05-11 09:42:15,685 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully IotHUb Uri : MyExampleHub.azure-devices.net Device ID : java-device-01 2022-05-11 09:42:25,057 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,080 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,087 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.0.3 2022-05-11 09:42:25,129 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection... 2022-05-11 09:42:25,150 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet... 2022-05-11 09:42:25,982 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged 2022-05-11 09:42:25,983 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# was acknowledged 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully 2022-05-11 09:42:26,070 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads 2022-05-11 09:42:26,073 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details 2022-05-11 09:42:26,074 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully 2022-05-11 09:42:26,075 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully Sending message from device to IoT Hub... 2022-05-11 09:42:26,077 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) Press any key to exit... 2022-05-11 09:42:26,079 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,422 DEBUG (MQTT Call: java-device-01) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,425 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK Message sent!
De registratie van de apparaatinrichting bevestigen
Bekijk de registratiegegevens van de afzonderlijke inschrijving die u eerder hebt gemaakt om te zien aan welke IoT-hub uw apparaat is ingericht:
Ga in Azure Portal naar Device Provisioning Service.
Selecteer Inschrijvingen beheren in het menu Instellingen.
Selecteer Afzonderlijke inschrijvingen. De X.509-inschrijvingsvermelding die u eerder hebt gemaakt, my-x509-device, moet worden weergegeven in de lijst.
Selecteer de inschrijvingsvermelding. De IoT-hub waaraan uw apparaat is toegewezen en de apparaat-id wordt weergegeven onder De registratiestatus.
Ga als volgende te werk om het apparaat in uw IoT-hub te verifiëren:
Ga in Azure Portal naar de IoT-hub waaraan uw apparaat is toegewezen.
Selecteer Apparaten in het menu Apparaatbeheer.
Als uw apparaat is ingericht, moet de apparaat-id, my-x509-device, worden weergegeven in de lijst, waarbij status is ingesteld als ingeschakeld. Als u uw apparaat niet ziet, selecteert u Vernieuwen.
Belangrijk
Als u de standaardwaarde van de initiële status van de apparaatdubbel hebt gewijzigd in de inschrijvingsvermelding voor uw apparaat, kan de gewenste status van de dubbel uit de hub worden gehaald en er dienovereenkomstig naar worden gehandeld. Zie Understand and use device twins in IoT Hub (Apparaatdubbelen begrijpen en gebruiken in IoT Hub) voor meer informatie
Resources opschonen
Als u van plan bent om door te gaan met het voorbeeld van de apparaatclient, moet u de resources die in deze quickstart zijn gemaakt, niet opschonen. Als u niet van plan bent om door te gaan, gebruikt u de volgende stappen om alle resources te verwijderen die door deze quickstart zijn gemaakt.
Uw apparaatinschrijving verwijderen
Sluit het uitvoervenster van het voorbeeld van de apparaatclient op de computer.
Selecteer Alle resources in het linkermenu in Azure Portal.
Selecteer uw Device Provisioning Service.
Selecteer Inschrijvingen beheren in het menu Instellingen.
Selecteer het tabblad Afzonderlijke inschrijvingen .
Schakel het selectievakje in naast de registratie-id van het apparaat dat u in deze quickstart hebt ingeschreven.
Selecteer Verwijderen bovenaan de pagina.
Uw apparaatregistratie verwijderen uit IoT Hub
Selecteer Alle resources in het linkermenu in Azure Portal.
Selecteer uw IoT-hub.
Selecteer IoT-apparaten in het menu Explorers.
Schakel het selectievakje in naast de apparaat-id van het apparaat dat u in deze quickstart hebt geregistreerd.
Selecteer Verwijderen bovenaan de pagina.
Volgende stappen
In deze quickstart hebt u één apparaat ingericht voor uw IoT-hub met behulp van een afzonderlijke inschrijving. Leer vervolgens hoe u meerdere apparaten in meerdere hubs inricht.