Programové vytvoření jednotlivé registrace služby Device Provisioning pro ověření identity TPM
V tomto článku se dozvíte, jak prostřednictvím kódu programu vytvořit individuální registraci pro zařízení TPM ve službě Azure IoT Hub Device Provisioning pomocí sady SDK služby Azure IoT Hub DPS a ukázkové aplikace. Po vytvoření jednotlivé registrace můžete volitelně zaregistrovat simulované zařízení TPM do služby zřizování prostřednictvím této položky registrace.
I když tyto kroky fungují na počítačích s Windows i Linuxem, tento článek používá vývojový počítač s Windows.
Požadavky
-
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Proveďte kroky v části Nastavení služby IoT Hub Device Provisioning pomocí webu Azure Portal.
Na počítač s Windows nainstalujte sadu .NET 6.0 SDK nebo novější nebo novější . Ke kontrole verze můžete použít následující příkaz.
dotnet --info
(Volitelné) Pokud chcete na konci tohoto článku zaregistrovat simulované zařízení, postupujte podle pokynů v části Vytvoření a zřízení simulovaného zařízení TPM až do kroku, ve kterém získáte ověřovací klíč pro dané zařízení. Uložte ověřovací klíč, jak ho použijete později v tomto článku.
Nepoužívejte postup vytvoření jednotlivé registrace pomocí webu Azure Portal.
Nainstalujte Node.js verze 4.0 nebo novější.
(Volitelné) Pokud chcete na konci tohoto článku zaregistrovat simulované zařízení, postupujte podle pokynů v části Vytvoření a zřízení simulovaného zařízení TPM až do kroku, ve kterém získáte ověřovací klíč a ID registrace zařízení. Uložte ověřovací klíč a ID registrace, jak je použijete později v tomto článku.
Nepoužívejte postup vytvoření jednotlivé registrace pomocí webu Azure Portal.
Nainstalujte sadu Java SE Development Kit 8. Tento článek nainstaluje sadu Java Service SDK dále v tomto článku. Funguje v systémech Windows i Linux. Tento článek používá Systém Windows.
Nainstalujte Maven 3.
Nainstalujte Git a ujistěte se, že je cesta přidaná do proměnné
PATH
prostředí .(Volitelné) Pokud chcete na konci tohoto článku zaregistrovat simulované zařízení, postupujte podle pokynů v části Vytvoření a zřízení simulovaného zařízení TPM až do kroku, ve kterém získáte ověřovací klíč pro dané zařízení. Poznamenejte si ověřovací klíč a ID registrace, jak je použijete dále v tomto článku.
Nepoužívejte postup vytvoření jednotlivé registrace pomocí webu Azure Portal.
Získání připojovacího řetězce pro službu zřizování
Pro ukázku v tomto článku použijete připojovací řetězec pro vaši službu zřizování.
Přihlaste se k portálu Azure.
V nabídce vlevo nebo na stránce portálu vyberte Všechny prostředky.
Vyberte službu Device Provisioning.
V nabídce Nastavení vyberte Zásady sdíleného přístupu.
Vyberte zásadu přístupu, kterou chcete použít.
Na panelu Zásady přístupu zkopírujte a uložte primární klíč připojovací řetězec.
Vytvoření ukázky jednotlivé registrace
V této části se dozvíte, jak vytvořit konzolovou aplikaci .NET Core, která do zřizovací služby přidá jednotlivou registraci zařízení TPM.
Otevřete příkazový řádek windows a přejděte do složky, do které chcete vytvořit aplikaci.
Pokud chcete vytvořit projekt konzoly, spusťte následující příkaz:
dotnet new console --framework net6.0 --use-program-main
Pokud chcete přidat odkaz na sadu SDK služby DPS, spusťte následující příkaz:
dotnet add package Microsoft.Azure.Devices.Provisioning.Service
Tento krok stáhne, nainstaluje a přidá odkaz na balíček NuGet klienta služby Azure IoT DPS a jeho závislosti. Tento balíček obsahuje binární soubory pro sadu SDK služby .NET.
Otevřete soubor Program.cs v editoru.
Nahraďte příkaz oboru názvů v horní části souboru následujícím kódem:
namespace CreateIndividualEnrollment;
Na začátek souboru nad
namespace
příkaz přidejte následujícíusing
příkazy:using System.Threading.Tasks; using Microsoft.Azure.Devices.Provisioning.Service;
Přidejte do
Program
třídy následující pole a proveďte uvedené změny.private static string ProvisioningConnectionString = "{ProvisioningServiceConnectionString}"; private const string RegistrationId = "sample-registrationid-csharp"; private const string TpmEndorsementKey = "AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUS" + "cTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3d" + "yKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKR" + "dln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFe" + "WlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnlgZcBhgy1SSDQMQ=="; // Optional parameters private const string OptionalDeviceId = "myCSharpDevice"; private const ProvisioningStatus OptionalProvisioningStatus = ProvisioningStatus.Enabled;
ProvisioningServiceConnectionString
Nahraďte zástupnou hodnotu připojovací řetězec služby zřizování, kterou jste zkopírovali v předchozí části.Pokud tento článek používáte společně s rychlým startem Vytvoření a zřízení simulovaného zařízení TPM pro zřízení simulovaného zařízení, nahraďte ověřovací klíč hodnotou, kterou jste si poznamenali v tomto rychlém startu. ID zařízení a ID registrace můžete nahradit hodnotami navrhovanými v tomto rychlém startu, použít vlastní hodnoty nebo použít výchozí hodnoty v této ukázce.
Do třídy přidejte následující metodu
Program
. Tento kód vytvoří jednotlivou položku registrace a potom zavoláCreateOrUpdateIndividualEnrollmentAsync
metoduProvisioningServiceClient
pro přidání jednotlivé registrace do služby zřizování.public static async Task RunSample() { Console.WriteLine("Starting sample..."); using (ProvisioningServiceClient provisioningServiceClient = ProvisioningServiceClient.CreateFromConnectionString(ProvisioningConnectionString)) { #region Create a new individualEnrollment config Console.WriteLine("\nCreating a new individualEnrollment object..."); Attestation attestation = new TpmAttestation(TpmEndorsementKey); IndividualEnrollment individualEnrollment = new IndividualEnrollment( RegistrationId, attestation); // The following parameters are optional. Remove them if you don't need them. individualEnrollment.DeviceId = OptionalDeviceId; individualEnrollment.ProvisioningStatus = OptionalProvisioningStatus; #endregion #region Create the individualEnrollment Console.WriteLine("\nAdding the individualEnrollment to the provisioning service..."); IndividualEnrollment individualEnrollmentResult = await provisioningServiceClient.CreateOrUpdateIndividualEnrollmentAsync(individualEnrollment).ConfigureAwait(false); Console.WriteLine("\nIndividualEnrollment created with success."); Console.WriteLine(individualEnrollmentResult); #endregion } }
Nakonec nahraďte metodu
Main
následujícími řádky:static async Task Main(string[] args) { await RunSample(); Console.WriteLine("\nHit <Enter> to exit ..."); Console.ReadLine(); }
Uložte provedené změny.
Tip
Pro zjednodušení tato ukázka používá ověřování SAS pro připojení k rozhraní API služby DPS. Bezpečnějším přístupem je použití přihlašovacích údajů tokenu Azure. Příklad této metody ověřování najdete v ukázce create_tpm_enrollment_with_token_credentials.js v sadě Node.js SDK.
Z příkazového okna ve vaší pracovní složce spusťte:
npm install azure-iot-provisioning-service
Tento krok stáhne, nainstaluje a přidá odkaz na balíček klienta služby Azure IoT DPS a jeho závislosti. Tento balíček obsahuje binární soubory pro sadu SDK služby Node.js.
Pomocí textového editoru ve své pracovní složce vytvořte soubor create_individual_enrollment.js. Do souboru přidejte následující kód:
'use strict'; var provisioningServiceClient = require('azure-iot-provisioning-service').ProvisioningServiceClient; var serviceClient = provisioningServiceClient.fromConnectionString(process.argv[2]); var endorsementKey = process.argv[3]; var enrollment = { registrationId: 'first', attestation: { type: 'tpm', tpm: { endorsementKey: endorsementKey } } }; serviceClient.createOrUpdateIndividualEnrollment(enrollment, function(err, enrollmentResponse) { if (err) { console.log('error creating the individual enrollment: ' + err); } else { console.log("enrollment record returned: " + JSON.stringify(enrollmentResponse, null, 2)); } });
Uložte soubor.
Otevřete příkazový řádek Windows.
Naklonujte sady SDK Microsoft Azure IoT pro úložiště GitHub v Javě:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Přejděte do ukázkové složky:
cd azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-sample
Otevřete soubor \src\main\java\samples\com\microsoft\azure\sdk\iot\ServiceEnrollmentSample.java v editoru.
Nahraďte
[Provisioning Connection String]
připojovací řetězec, které jste zkopírovali v části Získat připojovací řetězec pro vaši službu zřizování.private static final String PROVISIONING_CONNECTION_STRING = "[Provisioning Connection String]";
Přidejte podrobnosti o zařízení TPM.
[RegistrationId]
Nahraďte a[TPM Endorsement Key]
v následujících příkazech ověřovacím klíčem a ID registrace.private static final String REGISTRATION_ID = "[RegistrationId]"; private static final String TPM_ENDORSEMENT_KEY = "[TPM Endorsement Key]";
Pokud tento článek používáte společně s rychlým startem Vytvoření a zřízení simulovaného zařízení TPM pro zřízení simulovaného zařízení, použijte hodnoty ID registrace a ověřovacího klíče , které jste si poznamenali v tomto rychlém startu.
Pokud tento článek používáte k vytvoření ukázkové jednotlivé registrace a nemáte v úmyslu ho použít k registraci zařízení, můžete pro ověřovací klíč použít následující hodnotu:
private static final String TPM_ENDORSEMENT_KEY = "AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnefZcBhgy1SSDQMQ==";
Zadejte vlastní hodnotu pro ID registrace.
U jednotlivých registrací se můžete rozhodnout nastavit ID zařízení, které DPS přiřadí zařízení, když ho zřídí do IoT Hubu. Pokud nepřiřazujete ID zařízení, DPS jako ID zařízení použije ID registrace. Ve výchozím nastavení tato ukázka přiřadí id zařízení myJavaDevice. Pokud chcete změnit ID zařízení, upravte následující příkaz:
private static final String DEVICE_ID = "myJavaDevice";
Pokud nechcete přiřadit konkrétní ID zařízení, zakomentujte následující příkaz:
individualEnrollment.setDeviceId(DEVICE_ID);
Ukázka umožňuje nastavit centrum IoT v individuální registraci pro zřízení zařízení. Toto centrum IoT musí být takové, které bylo dříve propojeno se službou zřizování. Pro účely tohoto článku necháme SLUŽBU DPS vybrat z propojených center podle výchozích zásad přidělování, rovnoměrně vážené distribuce. Zakomentujte v souboru následující příkaz:
individualEnrollment.setIotHubHostName(IOTHUB_HOST_NAME);
Ukázka vytvoří, aktualizuje, dotazuje a odstraní jednotlivé registrace zařízení TPM. Pokud chcete ověřit úspěšnou registraci na portálu, dočasně okomentujte následující řádky kódu na konci souboru:
// *********************************** Delete info of individualEnrollment ************************************ System.out.println("\nDelete the individualEnrollment..."); provisioningServiceClient.deleteIndividualEnrollment(REGISTRATION_ID);
Uložte provedené změny.
Spuštění ukázky jednotlivé registrace
Spusťte ukázku:
dotnet run
Po úspěšném vytvoření se v příkazovém okně zobrazí vlastnosti nové registrace.
Ke spuštění ukázky potřebujete připojovací řetězec pro službu zřizování, kterou jste zkopírovali v předchozí části, a ověřovací klíč pro zařízení. Pokud jste postupovali podle rychlého startu k vytvoření a zřízení simulovaného zařízení TPM, použijte ověřovací klíč vytvořený pro toto zařízení. V opačném případě můžete k vytvoření ukázkové jednotlivé registrace použít následující ověřovací klíč, který je součástí sady SDK služby Node.js:
AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnlgZcBhgy1SSDQMQ==
Pokud chcete vytvořit jednotlivou registraci pro vaše zařízení TPM, spusťte následující příkaz (včetně uvozovek okolo argumentů příkazu):
node create_individual_enrollment.js "<the connection string for your provisioning service>" "<endorsement key>"
Po úspěšném vytvoření se v příkazovém okně zobrazí vlastnosti nové registrace.
Ve složce azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-sample na příkazovém řádku spusťte následující příkaz, který ukázku sestaví:
mvn install -DskipTests
Tento příkaz stáhne balíček Maven klienta služby Azure IoT DPS do počítače a sestaví ukázku. Tento balíček obsahuje binární soubory sady SDK služby Java.
Přepněte do cílové složky a spusťte ukázku. Sestavení v předchozím kroku vypíše .jar soubor v cílové složce s následujícím formátem souboru:
service-enrollment-sample-{version}-with-deps.jar
například :service-enrollment-sample-1.8.1-with-deps.jar
. Možná budete muset nahradit verzi v následujícím příkazu.cd target java -jar ./service-enrollment-sample-1.8.1-with-deps.jar
Po úspěšném vytvoření se v příkazovém okně zobrazí vlastnosti nové registrace.
Ověření vytvoření jednotlivé registrace:
Na webu Azure Portal přejděte k vaší instanci služby Device Provisioning.
V nabídce Nastavení vyberte Spravovat registrace.
Vyberte kartu Jednotlivé registrace. Měla by se zobrazit nová položka registrace odpovídající ID registrace, které jste použili v ukázce.
Registrace simulovaného zařízení (volitelné)
Pokud jste postupovali v rychlém startu Vytvoření a zřízení simulovaného zařízení TPM pro zřízení simulovaného zařízení , pokračujte v rychlém startu v části Registrace zařízení.
Pokud jste postupovali v rychlém startu Vytvoření a zřízení simulovaného zařízení TPM pro zřízení simulovaného zařízení , pokračujte v rychlém startu v části Registrace zařízení.
Pokud jste postupovali v rychlém startu Vytvoření a zřízení simulovaného zařízení TPM pro zřízení simulovaného zařízení , pokračujte v rychlém startu v části Registrace zařízení.
Vyčištění prostředků
Pokud se chystáte prozkoumat kurzy DPS, nevyčisťujte prostředky vytvořené v tomto článku. V opačném případě pomocí následujícího postupu odstraňte všechny prostředky vytvořené tímto článkem.
Na webu Azure Portal přejděte k vaší instanci služby Device Provisioning.
V nabídce Nastavení vyberte Spravovat registrace.
Vyberte kartu Jednotlivé registrace.
Zaškrtněte políčko vedle ID registrace položky registrace, kterou jste vytvořili v tomto článku.
V horní části stránky vyberte Odstranit.
Pokud jste postupovali podle kroků v části Vytvoření a zřízení simulovaného zařízení TPM pro vytvoření simulovaného zařízení TPM, proveďte následující kroky:
Na webu Azure Portal přejděte do služby IoT Hub, ve které se zřídilo vaše zařízení.
V nabídce vlevo v části Správa zařízení vyberte Zařízení.
Zaškrtněte políčko vedle ID zařízení zařízení, které jste zaregistrovali v tomto článku.
V horní části podokna vyberte Odstranit.
Pokud jste postupovali podle kroků v části Vytvoření a zřízení simulovaného zařízení TPM pro vytvoření simulovaného zařízení TPM, proveďte následující kroky:
Zavřete okno simulátoru TPM a okno výstupu ukázky pro simulované zařízení.
Na webu Azure Portal přejděte do služby IoT Hub, ve které se zřídilo vaše zařízení.
V nabídce vlevo v části Správa zařízení vyberte Zařízení.
Zaškrtněte políčko vedle ID zařízení zařízení, které jste zaregistrovali v tomto článku.
V horní části podokna vyberte Odstranit.
Pokud jste postupovali podle kroků v části Vytvoření a zřízení simulovaného zařízení TPM pro vytvoření simulovaného zařízení TPM, proveďte následující kroky:
Zavřete okno simulátoru TPM a okno výstupu ukázky pro simulované zařízení.
Na webu Azure Portal přejděte do služby IoT Hub, ve které se zřídilo vaše zařízení.
V nabídce vlevo v části Správa zařízení vyberte Zařízení.
Zaškrtněte políčko vedle ID zařízení zařízení, které jste zaregistrovali v tomto článku.
V horní části podokna vyberte Odstranit.
Další kroky
V tomto článku jste programově vytvořili jednotlivou položku registrace pro zařízení TPM. Volitelně jste na počítači vytvořili simulované zařízení TPM a zřídili jste ho pro centrum IoT pomocí služby Azure IoT Hub Device Provisioning. Pokud chcete prozkoumat další informace, podívejte se na následující odkazy:
Další informace o ověření identity TPM pomocí DPS najdete v tématu Ověření identity čipem TPM.
Kompletní příklad zřízení zařízení prostřednictvím jednotlivé registrace pomocí ověření identity TPM najdete v rychlém startu Zřízení simulovaného zařízení TPM.
Informace o správě jednotlivých registrací a skupin registrací pomocí webu Azure Portal najdete v tématu Správa registrací zařízení pomocí webu Azure Portal.