Eszközkiépítési szolgáltatás egyéni regisztrációjának programozott létrehozása a TPM-igazoláshoz
Ez a cikk bemutatja, hogyan hozhat létre egyéni regisztrációt egy TPM-eszközhöz az Azure IoT Hub Device Provisioning Service-ben az Azure IoT Hub DPS szolgáltatás SDK és egy mintaalkalmazás használatával. Miután létrehozta az egyéni regisztrációt, ezen a regisztrációs bejegyzésen keresztül opcionálisan regisztrálhat egy szimulált TPM-eszközt a kiépítési szolgáltatásba.
Bár ezek a lépések Windows és Linux rendszerű számítógépeken is működnek, ez a cikk windowsos fejlesztőszámítógépet használ.
Előfeltételek
-
If you don't have an Azure subscription, create an Azure free account before you begin.
Hajtsa végre az IoT Hub Device Provisioning Service azure portallal való beállításának lépéseit.
Telepítse a .NET 6.0 SDK-t vagy újabb verziót Windows-alapú gépére. A verzió ellenőrzéséhez használja az alábbi parancsot.
dotnet --info
(Nem kötelező) Ha a cikk végén egy szimulált eszközt szeretne regisztrálni, kövesse a szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit egészen az eszközhöz tartozó jóváhagyási kulcs beszerzésének lépésig. Mentse az ajánlási kulcsot, ahogy a cikk későbbi részében használja.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
Telepítse a Node.js v4.0+-t.
(Nem kötelező) Ha a cikk végén szeretne regisztrálni egy szimulált eszközt, kövesse a szimulált TPM-eszköz létrehozására és kiépítésére vonatkozó eljárást egészen a lépésig, amelyben megkapja az eszközhöz tartozó jóváhagyási kulcsot és regisztrációs azonosítót. Mentse az ellenőrző kulcsot és a regisztrációs azonosítót, ahogy a cikk későbbi részében használja őket.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
Telepítse a Java Standard kiadás Development Kit 8-at. Ez a cikk telepíti a Java Service SDK-t a cikk későbbi részében. Windowson és Linuxon is működik. Ez a cikk a Windowst használja.
Telepítse a Maven 3-at.
Telepítse a Gitet , és győződjön meg arról, hogy az elérési út hozzá van adva a környezeti változóhoz
PATH
.(Nem kötelező) Ha a cikk végén egy szimulált eszközt szeretne regisztrálni, kövesse a szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit egészen az eszközhöz tartozó jóváhagyási kulcs beszerzésének lépésig. Jegyezze fel az ellenőrző kulcsot és a regisztrációs azonosítót, ahogy a jelen cikk későbbi részében használja őket.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
TPM-jóváhagyási kulcs lekérése (nem kötelező)
A cikk lépéseit követve létrehozhat egy egyéni mintaregisztrációt. Ebben az esetben megtekintheti a regisztrációs bejegyzést a DPS-ben, de nem fogja tudni használni az eszköz kiépítéséhez.
A cikkben leírt lépéseket követve létrehozhat egy egyéni regisztrációt, és regisztrálhat egy szimulált TPM-eszközt. Ha a cikk végén egy szimulált eszközt szeretne regisztrálni, kövesse a szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit egészen az eszközhöz tartozó jóváhagyási kulcs beszerzésének lépésig. Mentse a záradékkulcsot a cikk későbbi részében használt módon.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
A cikkben leírt lépéseket követve létrehozhat egy egyéni regisztrációt, és regisztrálhat egy szimulált TPM-eszközt. Ha a cikk végén szeretne regisztrálni egy szimulált eszközt, kövesse a szimulált TPM-eszköz létrehozására és kiépítésére vonatkozó eljárást egészen a lépésig, amelyben megkapja az eszközhöz tartozó jóváhagyási kulcsot és regisztrációs azonosítót. Mentse az ellenőrző kulcsot és a regisztrációs azonosítót, ahogy a cikk későbbi részében használja őket.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
A cikkben leírt lépéseket követve létrehozhat egy egyéni regisztrációt, és regisztrálhat egy szimulált TPM-eszközt. Ha a cikk végén egy szimulált eszközt szeretne regisztrálni, kövesse a szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit egészen az eszközhöz tartozó jóváhagyási kulcs beszerzésének lépésig. Jegyezze fel az ellenőrző kulcsot és a regisztrációs azonosítót, ahogy a jelen cikk későbbi részében használja őket.
Megjegyzés:
Az Azure Portal használatával ne kövesse az egyéni regisztráció létrehozásához szükséges lépéseket.
A kiépítési szolgáltatás kapcsolati sztringjének lekérése
A cikkben szereplő minta esetében ki kell másolnia a kiépítési szolgáltatás kapcsolati sztring.
Jelentkezzen be az Azure Portalra.
A bal oldali menüben vagy a portállapon válassza a Minden erőforrás lehetőséget.
Válassza ki az Eszközkiépítési szolgáltatást.
A Gépház menüben válassza a Megosztott hozzáférési szabályzatok lehetőséget.
Válassza ki a használni kívánt hozzáférési szabályzatot.
Az Access Policy panelen másolja és mentse az elsődleges kulcsot kapcsolati sztring.
Az egyéni regisztrációs minta létrehozása
Ez a szakasz bemutatja, hogyan hozhat létre egy .NET Core-konzolalkalmazást, amely egyéni regisztrációt ad hozzá egy TPM-eszközhöz a kiépítési szolgáltatáshoz.
Nyisson meg egy Windows-parancssort, és lépjen egy mappába, ahol létre szeretné hozni az alkalmazást.
Konzolprojekt létrehozásához futtassa a következő parancsot:
dotnet new console --framework net6.0 --use-program-main
A DPS szolgáltatás SDK-jára mutató hivatkozás hozzáadásához futtassa a következő parancsot:
dotnet add package Microsoft.Azure.Devices.Provisioning.Service
Ez a lépés letölti, telepíti és hozzáad egy hivatkozást az Azure IoT DPS szolgáltatásügyfél NuGet-csomagjához és függőségeihez. Ez a csomag tartalmazza a .NET szolgáltatás SDK bináris fájljait.
Nyissa meg a Program.cs fájlt egy szerkesztőben.
Cserélje le a fájl tetején található névtérutasítást a következőre:
namespace CreateIndividualEnrollment;
Adja hozzá a következő
using
utasításokat a fájl tetején aznamespace
utasítás fölött:using System.Threading.Tasks; using Microsoft.Azure.Devices.Provisioning.Service;
Adja hozzá a következő mezőket az
Program
osztályhoz, és végezze el a felsorolt módosításokat.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;
Cserélje le a
ProvisioningServiceConnectionString
helyőrző értéket az előző szakaszban másolt kiépítési szolgáltatás kapcsolati sztring.Ha ezt a cikket a szimulált eszköz üzembe helyezéséhez használt szimulált TPM-eszköz létrehozása és kiépítése rövid útmutatójával együtt használja, cserélje le a jóváhagyási kulcsot a rövid útmutatóban feljegyzett értékre. Az eszközazonosítót és a regisztrációs azonosítót lecserélheti a rövid útmutatóban javasolt értékekre, használhatja a saját értékeit, vagy használhatja a minta alapértelmezett értékeit.
Adja hozzá a következő metódust az
Program
osztályhoz. Ez a kód létrehoz egy egyéni regisztrációs bejegyzést, majd meghívja aCreateOrUpdateIndividualEnrollmentAsync
metódust,ProvisioningServiceClient
hogy adja hozzá az egyéni regisztrációt a kiépítési szolgáltatáshoz.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 } }
Végül cserélje le a metódust
Main
a következő sorokra:static async Task Main(string[] args) { await RunSample(); Console.WriteLine("\nHit <Enter> to exit ..."); Console.ReadLine(); }
Save your changes.
A munkamappában egy parancsablakból futtassa a következőt:
npm install azure-iot-provisioning-service
Ez a lépés letölti, telepíti és hozzáadja az Azure IoT DPS szolgáltatás ügyfélcsomagjára és függőségeire mutató hivatkozást. Ez a csomag tartalmazza a Node.js service SDK bináris fájljait.
Egy szövegszerkesztővel hozzon létre egy create_individual_enrollment.js fájlt a munkamappában. Adja hozzá az alábbi kódot a fájlhoz:
'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)); } });
Mentse a fájlt.
Nyisson meg egy Windows-parancssort.
Klónozza a Java GitHub-adattárhoz készült Microsoft Azure IoT SDK-kat:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Nyissa meg a mintamappát:
cd azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-sample
Nyissa meg a \src\main\java\samples\com\microsoft\azure\sdk\iot\ServiceEnrollmentSample.java fájlt egy szerkesztőben.
Cserélje le
[Provisioning Connection String]
a kiépítési szolgáltatás kapcsolati sztring bemásolt kapcsolati sztring.private static final String PROVISIONING_CONNECTION_STRING = "[Provisioning Connection String]";
Adja hozzá a TPM-eszköz adatait. Cserélje le az
[RegistrationId]
[TPM Endorsement Key]
alábbi utasításokat az ellenőrzőkulcsra és a regisztrációs azonosítóra.private static final String REGISTRATION_ID = "[RegistrationId]"; private static final String TPM_ENDORSEMENT_KEY = "[TPM Endorsement Key]";
Ha ezt a cikket a szimulált eszköz üzembe helyezéséhez használt szimulált TPM-eszköz létrehozásával és üzembe helyezésével együtt használja a rövid útmutatóban szereplő regisztrációs azonosítót és ajánlási kulcsértékeket .
Ha ezt a cikket csak egyéni mintaregisztráció létrehozására használja, és nem szeretné azt eszköz regisztrálására használni, a következő értéket használhatja egy ellenőrzőkulcshoz:
private static final String TPM_ENDORSEMENT_KEY = "AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnefZcBhgy1SSDQMQ==";
Adja meg a regisztrációs azonosító saját értékét, például a "myJavaDevice" értéket.
Egyéni regisztrációk esetén beállíthatja az eszközazonosítót, amelyet a DPS hozzárendel az eszközhöz, amikor azt az IoT Hubra helyezi. Ha nem rendel hozzá eszközazonosítót, a DPS a regisztrációs azonosítót használja eszközazonosítóként. Ez a minta alapértelmezés szerint a "myJavaDevice" azonosítót rendeli az eszközazonosítóhoz. Ha módosítani szeretné az eszközazonosítót, módosítsa a következő utasítást:
private static final String DEVICE_ID = "myJavaDevice";
Ha nem szeretne hozzárendelni egy adott eszközazonosítót, megjegyzést fűzzön az alábbi utasításhoz:
individualEnrollment.setDeviceId(DEVICE_ID);
A minta lehetővé teszi egy IoT Hub beállítását az egyéni regisztrációban az eszköz üzembe helyezéséhez. Ennek az IoT Hubnak olyannak kell lennie, amelyet korábban a kiépítési szolgáltatáshoz csatoltak. Ebben a cikkben lehetővé tesszük, hogy a DPS az alapértelmezett foglalási szabályzatnak megfelelően válasszon a csatolt központok közül, egyenletesen súlyozott eloszlással. Fűzzön megjegyzést a következő utasításhoz a fájlban:
individualEnrollment.setIotHubHostName(IOTHUB_HOST_NAME);
A minta létrehoz, frissít, lekérdez és töröl egy egyéni TPM-eszközregisztrációt. A portálon való sikeres regisztráció ellenőrzéséhez ideiglenesen jegyezze fel a következő kódsorokat a fájl végén:
// *********************************** Delete info of individualEnrollment ************************************ System.out.println("\nDelete the individualEnrollment..."); provisioningServiceClient.deleteIndividualEnrollment(REGISTRATION_ID);
Save your changes.
Az egyéni regisztrációs minta futtatása
Minta futtatása:
dotnet run
Sikeres létrehozás esetén a parancsablak megjeleníti az új regisztráció tulajdonságait.
A minta futtatásához szüksége lesz az előző szakaszban másolt kiépítési szolgáltatás kapcsolati sztring, valamint az eszköz jóváhagyási kulcsára. Ha követte a szimulált TPM-eszköz létrehozásának és üzembe helyezésének rövid útmutatóját, használja az eszközhöz létrehozott ellenőrző kulcsot. Ellenkező esetben egyéni mintaregisztráció létrehozásához használhatja a Node.js Service SDK-hoz mellékelt alábbi ellenőrző kulcsot:
AToAAQALAAMAsgAgg3GXZ0SEs/gakMyNRqXXJP1S124GUgtk8qHaGzMUaaoABgCAAEMAEAgAAAAAAAEAxsj2gUScTk1UjuioeTlfGYZrrimExB+bScH75adUMRIi2UOMxG1kw4y+9RW/IVoMl4e620VxZad0ARX2gUqVjYO7KPVt3dyKhZS3dkcvfBisBhP1XH9B33VqHG9SHnbnQXdBUaCgKAfxome8UmBKfe+naTsE5fkvjb/do3/dD6l4sGBwFCnKRdln4XpM03zLpoHFao8zOwt8l/uP3qUIxmCYv9A7m69Ms+5/pCkTu/rK4mRDsfhZ0QLfbzVI6zQFOKF/rwsfBtFeWlWtcuJMKlXdD8TXWElTzgh7JS4qhFzreL0c1mI0GCj+Aws0usZh7dLIVPnlgZcBhgy1SSDQMQ==
A TPM-eszköz egyéni regisztrációjának létrehozásához futtassa a következő parancsot (ne hagyja ki a parancs argumentumai körüli idézőjeleket sem):
node create_individual_enrollment.js "<the connection string for your provisioning service>" "<endorsement key>"
Sikeres létrehozás esetén a parancsablak megjeleníti az új regisztráció tulajdonságait.
Az azure-iot-sdk-java\provisioning\provisioning-service-client-samples\service-enrollment-sample mappából futtassa a következő parancsot a minta létrehozásához:
mvn install -DskipTests
Ez a parancs letölti az Azure IoT DPS szolgáltatás-ügyfél Maven-csomagot a gépére, és létrehozza a mintát. Ez a csomag tartalmazza a Java-szolgáltatás SDK bináris fájljait.
Váltson a célmappára , és futtassa a mintát. Az előző lépés buildje .jar fájlt ad ki a célmappában a következő fájlformátummal:
service-enrollment-sample-{version}-with-deps.jar
; például:service-enrollment-sample-1.8.1-with-deps.jar
. Előfordulhat, hogy a következő parancsban le kell cserélnie a verziót.cd target java -jar ./service-enrollment-sample-1.8.1-with-deps.jar
Sikeres létrehozás esetén a parancsablak megjeleníti az új regisztráció tulajdonságait.
Annak ellenőrzése, hogy az egyéni regisztráció létrejött-e:
Az Azure Portalon keresse meg a Device Provisioning Service-példányt.
A Gépház menüben válassza a Regisztrációk kezelése lehetőséget.
Válassza az Egyéni regisztrációk lapot. Egy új regisztrációs bejegyzésnek kell megjelennie, amely megfelel a mintában használt regisztrációs azonosítónak.
Szimulált eszköz regisztrálása (nem kötelező)
Ha követte a szimulált eszköz üzembe helyezéséhez szükséges szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit, folytassa a rövid útmutatót az eszköz regisztrálása című témakörben.
Ha követte a szimulált eszköz üzembe helyezéséhez szükséges szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit, folytassa a rövid útmutatót az eszköz regisztrálása című témakörben.
Ha követte a szimulált eszköz üzembe helyezéséhez szükséges szimulált TPM-eszköz létrehozásának és kiépítésének lépéseit, folytassa a rövid útmutatót az eszköz regisztrálása című témakörben.
Clean up resources
Ha a DPS-oktatóanyagokat szeretné megismerni, ne törölje a cikkben létrehozott erőforrásokat. Ellenkező esetben az alábbi lépésekkel törölheti a cikk által létrehozott összes erőforrást.
Az Azure Portalon keresse meg a Device Provisioning Service-példányt.
A Gépház menüben válassza a Regisztrációk kezelése lehetőséget.
Válassza az Egyéni regisztrációk lapot.
Jelölje be a cikkben létrehozott regisztrációs bejegyzés regisztrációs azonosítója melletti jelölőnégyzetet.
Az oldal tetején válassza a Törlés lehetőséget.
Ha követte a szimulált TPM-eszköz létrehozásához és kiépítéséhez szükséges lépéseket, hajtsa végre a következő lépéseket:
Az Azure Portalon lépjen ahhoz az IoT Hubhoz, ahol regisztrálta az eszközt.
Az Eszközkezelés bal oldali menüjében válassza az Eszközök lehetőséget.
Jelölje be a cikkben regisztrált eszköz eszközazonosítója melletti jelölőnégyzetet.
A panel tetején válassza a Törlés lehetőséget.
Ha követte a szimulált TPM-eszköz létrehozásához és kiépítéséhez szükséges lépéseket, hajtsa végre a következő lépéseket:
Zárja be a TPM-szimulátor ablakát és a szimulált eszköz mintakódkimeneti ablakát.
Az Azure Portalon lépjen ahhoz az IoT Hubhoz, ahol regisztrálta az eszközt.
Az Eszközkezelés bal oldali menüjében válassza az Eszközök lehetőséget.
Jelölje be a cikkben regisztrált eszköz eszközazonosítója melletti jelölőnégyzetet.
A panel tetején válassza a Törlés lehetőséget.
Ha követte a szimulált TPM-eszköz létrehozásához és kiépítéséhez szükséges lépéseket, hajtsa végre a következő lépéseket:
Zárja be a TPM-szimulátor ablakát és a szimulált eszköz mintakódkimeneti ablakát.
Az Azure Portalon lépjen ahhoz az IoT Hubhoz, ahol regisztrálta az eszközt.
Az Eszközkezelés bal oldali menüjében válassza az Eszközök lehetőséget.
Jelölje be a cikkben regisztrált eszköz eszközazonosítója melletti jelölőnégyzetet.
A panel tetején válassza a Törlés lehetőséget.
Következő lépések
Ebben a cikkben programozott módon létrehozott egy egyéni regisztrációs bejegyzést egy TPM-eszközhöz. Opcionálisan létrehozott egy szimulált TPM-eszközt a számítógépen, és kiépítette azt az IoT Hubon az Azure IoT Hub Device Provisioning Service használatával. További információért tekintse meg az alábbi hivatkozásokat:
A DPS-sel való TPM-igazolással kapcsolatos további információkért lásd a TPM-igazolást.
Az eszköz TPM-igazolással történő egyéni regisztráción keresztül történő kiépítésére vonatkozó, végpontok közötti példáért tekintse meg a szimulált TPM-eszköz üzembe helyezésének rövid útmutatóját.
Az egyes regisztrációk és regisztrációs csoportok Azure Portallal történő kezeléséről az Eszközregisztrációk kezelése az Azure Portalon című témakörben olvashat.