Concepten voor apparaatverificatie in IoT Central
In dit artikel wordt beschreven hoe apparaten worden geverifieerd bij een IoT Central-toepassing. Zie Verbinding maken met een apparaat voor meer informatie over het algehele verbindingsproces.
Apparaten worden geverifieerd met de IoT Central-toepassing met behulp van een SAS-token (Shared Access Signature) of een X.509-certificaat. X.509-certificaten worden aanbevolen in productieomgevingen.
U gebruikt inschrijvingsgroepen om de opties voor apparaatverificatie in uw IoT Central-toepassing te beheren.
In dit artikel worden de volgende opties voor apparaatverificatie beschreven:
Elk van deze verificatieopties vereist dat elk apparaat een unieke apparaat-id heeft. De apparaat-id is een unieke id voor het apparaat dat u gebruikt om het apparaat in uw IoT Central-toepassing te beheren.
X.509-inschrijvingsgroep
In een productieomgeving is het gebruik van X.509-certificaten het aanbevolen mechanisme voor apparaatverificatie voor IoT Central. Zie Apparaatverificatie met X.509 CA-certificaten voor meer informatie.
Een X.509-inschrijvingsgroep bevat een basis- of tussenliggend X.509-certificaat. Apparaten kunnen verifiëren als ze een geldig bladcertificaat hebben dat is afgeleid van het basis- of tussencertificaat.
Een apparaat verbinden met een X.509-certificaat met uw toepassing:
- Maak een inschrijvingsgroep die gebruikmaakt van het attestation-type Certificaten (X.509 ).
- Voeg een tussenliggend X.509-certificaat toe en controleer dit in de inschrijvingsgroep.
- Genereer een leaf-certificaat op basis van het basis- of tussencertificaat in de inschrijvingsgroep. Installeer het leaf-certificaat op het apparaat dat moet worden gebruikt wanneer het verbinding maakt met uw toepassing.
Elke inschrijvingsgroep moet een uniek X.509-certificaat gebruiken. IoT Central biedt geen ondersteuning voor het gebruik van hetzelfde X.509-certificaat voor meerdere inschrijvingsgroepen.
Zie Apparaten verbinden met X.509-certificaten voor meer informatie.
Alleen voor testdoeleinden
Gebruik in een productieomgeving certificaten van uw certificaatprovider. Als u alleen wilt testen, kunt u de volgende hulpprogramma's gebruiken om basis-, tussenliggende en apparaatcertificaten te genereren:
- Hulpprogramma's voor de Azure IoT Device Provisioning Device SDK: een verzameling Node.js hulpprogramma's die u kunt gebruiken om X.509-certificaten en -sleutels te genereren en te verifiëren.
- Test-CA-certificaten voor voorbeelden en zelfstudies beheren: een verzameling PowerShell- en Bash-scripts voor:
- Maak een certificaatketen.
- Sla de certificaten op als .cer bestanden die u wilt uploaden naar uw IoT Central-toepassing.
- Gebruik de verificatiecode van de IoT Central-toepassing om het verificatiecertificaat te genereren.
- Maak bladcertificaten voor uw apparaten met behulp van uw apparaat-id's als parameter voor het hulpprogramma.
SAS-inschrijvingsgroep
Een SAS-inschrijvingsgroep bevat SAS-sleutels op groepsniveau. Apparaten kunnen verifiëren als ze een geldig SAS-token hebben dat is afgeleid van een SAS-sleutel op groepsniveau.
Een apparaat verbinden met een SAS-token van het apparaat met uw toepassing:
Maak een inschrijvingsgroep die gebruikmaakt van het sas-attestation-type (Shared Access Signature).
Kopieer de primaire of secundaire sleutel van de groep uit de inschrijvingsgroep.
Gebruik de Azure CLI om een apparaattoken te genereren op basis van de groepssleutel:
az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
Tip
Elk apparaat dat verbinding maakt met uw IoT Central-toepassing, moet een unieke apparaat-id hebben. Met de vorige opdracht wordt een uniek token gegenereerd voor elk apparaat.
Gebruik het gegenereerde apparaattoken wanneer het apparaat verbinding maakt met uw IoT Central-toepassing.
Notitie
Als u bestaande SAS-sleutels in uw inschrijvingsgroepen wilt gebruiken, schakelt u de wisselknop Automatisch sleutels genereren uit en voert u handmatig uw SAS-sleutels in.
Als u de standaard-SAS-IoT-Devices-inschrijvingsgroep gebruikt, genereert IoT Central de afzonderlijke apparaatsleutels voor u. Als u deze sleutels wilt openen, selecteert u Verbinding maken op de pagina met apparaatdetails. Op deze pagina worden het id-bereik, de apparaat-id, de primaire sleutel en de secundaire sleutel weergegeven die u in de apparaatcode gebruikt. Op deze pagina wordt ook een QR-code weergegeven die dezelfde gegevens bevat.
Afzonderlijke inschrijving
Apparaten maken doorgaans verbinding met behulp van referenties die zijn afgeleid van een X.509-certificaat of SAS-sleutel van een inschrijvingsgroep. Als uw apparaten echter elk hun eigen referenties hebben, kunt u afzonderlijke inschrijvingen gebruiken. Een afzonderlijke inschrijving is een vermelding voor één apparaat waarmee het verbinding kan maken. Afzonderlijke inschrijvingen kunnen X.509 leaf-certificaten of SAS-tokens (van een fysieke of virtuele vertrouwde platformmodule) gebruiken als attestation-mechanismen. Zie afzonderlijke DPS-inschrijving voor meer informatie.
Notitie
Wanneer u een afzonderlijke inschrijving voor een apparaat maakt, heeft deze voorrang op de standaardopties voor inschrijvingsgroepen in uw IoT Central-toepassing.
Afzonderlijke inschrijvingen maken
IoT Central ondersteunt de volgende attestation-mechanismen voor afzonderlijke inschrijvingen:
Attestation voor symmetrische sleutels: Attestation van symmetrische sleutels is een eenvoudige benadering voor het verifiëren van een apparaat met het DPS-exemplaar. Als u een afzonderlijke inschrijving wilt maken die gebruikmaakt van symmetrische sleutels, opent u de pagina Apparaatverbinding voor het apparaat, selecteert u Afzonderlijke inschrijving als verificatietype en Sas (Shared Access Signature) als verificatiemethode. Voer de met Base64 gecodeerde primaire en secundaire sleutels in en sla uw wijzigingen op. Gebruik het id-bereik, de apparaat-id en de primaire of secundaire sleutel om uw apparaat te verbinden.
Tip
Voor het testen kunt u OpenSSL gebruiken om met Base64 gecodeerde sleutels te genereren:
openssl rand -base64 64
X.509-certificaten: Als u een afzonderlijke inschrijving met X.509-certificaten wilt maken, opent u de pagina Apparaatverbinding , selecteert u Afzonderlijke inschrijving als verificatietype en Certificaten (X.509) als verificatiemethode. Apparaatcertificaten die worden gebruikt met een afzonderlijke inschrijvingsvermelding, hebben een vereiste dat de verlener en de onderwerp-CN zijn ingesteld op de apparaat-id.
Tip
Voor testen kunt u hulpprogramma's voor de Azure IoT Device Provisioning Device SDK voor Node.js gebruiken om een zelfondertekend certificaat te genereren:
node create_test_cert.js device "mytestdevice"
TPM-attestation (Trusted Platform Module): een TPM is een type hardwarebeveiligingsmodule. Het gebruik van een TPM is een van de veiligste manieren om een apparaat te verbinden. In dit artikel wordt ervan uitgegaan dat u een discrete, firmware of geïntegreerde TPM gebruikt. Software-geëmuleerde TPM's zijn geschikt voor prototypen of testen, maar ze bieden niet hetzelfde beveiligingsniveau als discrete, firmware of geïntegreerde TPM's. Gebruik geen software-TPM's in productie. Als u een afzonderlijke inschrijving wilt maken die gebruikmaakt van een TPM, opent u de pagina Apparaatverbinding , selecteert u Afzonderlijke inschrijving als verificatietype en TPM als verificatiemethode. Voer de TPM-goedkeuringssleutel in en sla de verbindingsgegevens van het apparaat op.
Apparaten automatisch registreren
In dit scenario kunnen OEM's massaproductieapparaten maken die verbinding kunnen maken zonder dat ze eerst in een toepassing worden geregistreerd. Een OEM genereert geschikte apparaatreferenties en configureert de apparaten in de fabriek.
Apparaten die gebruikmaken van X.509-certificaten automatisch registreren:
Genereer de leaf-certificaten voor uw apparaten met behulp van het basis- of tussencertificaat dat u hebt toegevoegd aan uw X.509-inschrijvingsgroep. Gebruik de apparaat-id's als de
CNAME
in de leaf-certificaten. Een apparaat-id mag alleen letters, cijfers en het teken-
bevatten.Als OEM flasht u elk apparaat met een apparaat-id, een gegenereerd X.509-leaf-certificaat en de waarde van het bereik van de toepassings-id. De apparaatcode moet ook de model-id verzenden van het apparaatmodel dat wordt geïmplementeerd.
Wanneer u een apparaat inschakelt, maakt het eerst verbinding met DPS om de IoT Central-verbindingsgegevens op te halen.
Het apparaat gebruikt de gegevens van DPS om verbinding te maken met en u te registreren bij uw IoT Central-toepassing.
De IoT Central-toepassing gebruikt de model-id die door het apparaat wordt verzonden om het geregistreerde apparaat toe te wijzen aan een apparaatsjabloon.
Apparaten die gebruikmaken van SAS-tokens automatisch registreren:
Kopieer de primaire groepssleutel uit de inschrijvingsgroep SAS-IoT-Devices :
Gebruik de
az iot central device compute-device-key
opdracht om de SAS-sleutels van het apparaat te genereren. Gebruik de primaire groepssleutel uit de vorige stap. De apparaat-id kan letters, cijfers en het-
teken bevatten:az iot central device compute-device-key --primary-key <enrollment group primary key> --device-id <device ID>
Als OEM knippert u elk apparaat met de apparaat-id, de gegenereerde SAS-sleutel van het apparaat en de waarde van het bereik van de toepassings-id. De apparaatcode moet ook de model-id verzenden van het apparaatmodel dat wordt geïmplementeerd.
Wanneer u een apparaat inschakelt, maakt het eerst verbinding met DPS om de ioT Central-registratiegegevens op te halen.
Het apparaat gebruikt de gegevens van DPS om verbinding te maken met en u te registreren bij uw IoT Central-toepassing.
De IoT Central-toepassing gebruikt de model-id die door het apparaat wordt verzonden om het geregistreerde apparaat toe te wijzen aan een apparaatsjabloon.
Volgende stappen
Enkele voorgestelde volgende stappen zijn:
- Bekijk de aanbevolen procedures voor het ontwikkelen van apparaten.
- Bekijk enkele voorbeeldcode die laat zien hoe u SAS-tokens gebruikt in de zelfstudie: Een clienttoepassing maken en verbinden met uw Azure IoT Central-toepassing
- Meer informatie over het verbinden van apparaten met X.509-certificaten met behulp van Node.js apparaat-SDK voor IoT Central-toepassing
- Meer informatie over het bewaken van apparaatconnectiviteit met behulp van Azure CLI
- Meer informatie over Azure IoT Edge-apparaten en Azure IoT Central