Hızlı başlangıç: sanal bir TPM cihazı sağlama

bu hızlı başlangıçta, Windows makinenizde bir TPM sanal cihazı oluşturacaksınız. Cihazınızı yapılandırdıktan sonra Azure IoT Hub cihaz sağlama hizmeti 'ni kullanarak IoT Hub 'ınıza temin edersiniz. Daha sonra örnek kod, cihazı cihaz sağlama hizmeti örneğiyle kaydetme konusunda yardımcı olmak için kullanılacaktır

Sağlama işlemini bilmiyorsanız, sağlamaya genel bakış konusunu gözden geçirin. Ayrıca devam etmeden önce IoT Hub Cihazı Sağlama Hizmetini Azure portalıyla ayarlama bölümünde bulunan adımları tamamladığınızdan emin olun.

Azure IoT Cihaz Sağlama Hizmeti iki tür kaydı destekler:

  • Birden çok ilişkili cihazı kaydetmek için kullanılan kayıt grupları .

  • Tek bir cihazı kaydetmek için kullanılan bireysel kayıtlar.

Bu makalede, bireysel kayıtlar gösterilmektedir.

Ön koşullar

aşağıdaki önkoşullar Windows geliştirme ortamı içindir. Linux veya macOS için SDK belgelerinde geliştirme ortamınızı hazırlama konusunun ilgili bölümüne bakın.

  • Windows tabanlı makinenizde .net Core 2,1 SDK veya üstünü yükler. Sürümünüzü denetlemek için aşağıdaki komutu kullanabilirsiniz.

    dotnet --info
    
  • En son Git sürümünü yükleyin. Git 'in komut penceresine erişilebilen ortam değişkenlerine eklendiğinden emin olun. git Yerel git deponuzla etkileşim kurmak için kullanabileceğiniz bir komut satırı uygulaması olan Git Bash' i içeren en son araçlar sürümüne yönelik yazılım özgürlüğü ve git istemci araçları konusuna bakın.

Geliştirme ortamınızı hazırlama

Bu bölümde, Azure IoT C SDK 'sını ve TPM cihaz simülatörü örneğini oluşturmak için kullanılan bir geliştirme ortamı hazırlarsınız.

  1. En son CMake derleme sisteminiindirin.

    Önemli

    yüklemeye başlamadan önce Visual Studio önkoşulları (Visual Studio ve "C++ ile masaüstü geliştirme" iş yükü) makinenizde yüklü olduğunu doğrulayın CMake . Önkoşullar sağlandıktan ve indirme doğrulandıktan sonra, CMake derleme sistemini yükleyin. Ayrıca, CMake derleme sisteminin eski sürümlerinin bu makalede kullanılan çözüm dosyasını üretmeyeceği hakkında dikkat edin. CMake 'in en son sürümünü kullandığınızdan emin olun.

  2. Bir Web tarayıcısı açın ve Azure IoT C SDK 'Nın yayın sayfasınagidin.

  3. Sayfanın üst kısmındaki Etiketler sekmesini seçin.

  4. Azure IoT C SDK 'sının en son sürümü için etiket adı ' nı kopyalayın.

  5. Komut istemini veya Git Bash kabuğunu açın. Azure ıot C SDK GitHub deposunun en son sürümünü kopyalamak için aşağıdaki komutları çalıştırın. ( <release-tag> önceki adımda kopyaladığınız etiketle değiştirin).

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    Bu işlemin tamamlanması birkaç dakika sürebilir.

  6. İşlem tamamlandığında, dizininden aşağıdaki komutları çalıştırın azure-iot-sdk-c :

    mkdir cmake
    cd cmake
    
  1. Git CMD veya git Bash komut satırı ortamını açın.

  2. aşağıdaki komutu kullanarak C# GitHub için Azure ıot örneklerini kopyalayın:

    git clone https://github.com/Azure-Samples/azure-iot-samples-csharp.git
    
  1. Git CMD veya git Bash komut satırı ortamını açın.

  2. aşağıdaki komutu kullanarak azure-utpm-c GitHub deposunu kopyalayın:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Git CMD veya git Bash komut satırı ortamını açın.

  2. aşağıdaki komutu kullanarak Python GitHub deposunu kopyalayın:

    git clone --single-branch --branch v1-deprecated https://github.com/Azure/azure-iot-sdk-python.git --recursive
    
  3. cmake derleme işlemi için bu GitHub deposunun yerel kopyasında bir klasör oluşturun.

    cd azure-iot-sdk-python/c
    mkdir cmake
    cd cmake
    
  4. Python paketlerini derlemek için bu yönergeleri uygulayın.

    Not

    build_client.cmd çalıştırıyorsanız --use-tpm-simulator bayrağını kullandığınızdan emin olun.

    Not

    pip kullanıyorsanız azure-iot-provisioning-device-client paketini de yüklemeyi unutmayın. Yayımlanan PIP paketlerinin simülatörü değil gerçek TPM uygulamasını kullandığına dikkat edin. Simülatörü kullanmak için --use-tpm-simulator işaretini kullanarak kaynaktan derlemeniz gerekir.

  1. Git CMD veya git Bash komut satırı ortamını açın.

  2. aşağıdaki komutu kullanarak Java GitHub deposunu kopyalayın:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    

TPM cihaz simülatörü oluşturma ve çalıştırma

Bu bölümde TPM simülatörü oluşturup çalıştıracaksınız. Bu simülatör 2321 ve 2322 bağlantı noktalarında bulunan bir yuva üzerinden dinler. Komut penceresini kapatmayın. Bu hızlı başlangıç bitene kadar bu simülatörü çalışır durumda tutmanız gerekir.

  1. TPM cihaz simülatörü örnek kodunu içeren Azure IoT C SDK 'Yı derlemek için aşağıdaki komutu çalıştırın. sanal cihaz için bir Visual Studio çözümü cmake dizinde oluşturulur. Bu örnek, Paylaşılan Erişim İmzası (SAS) Belirteci kimlik doğrulaması yoluyla bir TPM kanıtlama mekanizması sağlar.

    cmake -Duse_prov_client:BOOL=ON ..
    

    İpucu

    cmakeC++ derleyicisini bulamazsa, yukarıdaki komutu çalıştırırken derleme hataları alabilirsiniz. bu durumda, komutu Visual Studio komut istemindeçalıştırmayı deneyin.

  2. Derleme başarılı olduğunda, son birkaç çıktı satırı aşağıdaki çıktıya benzer şekilde görünür:

    $ cmake -Duse_prov_client:BOOL=ON ..
    -- Building for: Visual Studio 16 2019
    -- The C compiler identification is MSVC 19.23.28107.0
    -- The CXX compiler identification is MSVC 19.23.28107.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/code/azure-iot-sdk-c/cmake
    
  3. Klonladığınız git deposunun kök klasörüne gidin.

  4. Aşağıda gösterilen yolu kullanarak TPM simülatörünü çalıştırın.

    cd ..
    .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe
    

    Simülatör hiçbir çıkış görüntülemez. Bir TPM cihazına benzediğinden çalışmaya devam etmesine izin verin.

  1. Cihaz sağlama hizmetinizin ana menüsünde genel bakış' ı seçin.

  2. Kimlik kapsamı değerini kopyalayın.

    Portal dikey penceresindeki sağlama hizmeti Kapsam Kimliğini kopyalama

  3. Komut isteminde dizini TPM cihaz sağlama örneğinin proje dizini olacak şekilde değiştirin.

    cd .\azure-iot-samples-csharp\provisioning\Samples\device\TpmSample
    
  4. TPM cihaz sağlama örneğini derlemek ve çalıştırmak için aşağıdaki komutu yazın ( <IDScope> sağlama HIZMETINIZIN kimlik kapsamıyla değiştirin).

    dotnet run <IDScope>
    

    Not

    Bu komut, TPM yonga simülatörünü ayrı bir komut isteminde başlatacaktır. Windows, Simulator.exe ortak ağlarda iletişim kurmasına izin vermek isteyip istemediğinizi soran bir Windows Güvenliği uyarısıyla karşılaşabilirsiniz. Bu örneğin amaçları doğrultusunda, isteği iptal edebilirsiniz.

  5. Özgün komut penceresinde, cihaz kaydı için gereken onay anahtarı, kayıt kimliği ve önerilen cihaz kimliği görüntülenir. Bu değerleri bir yere göz atın. Bu değeri, cihaz sağlama hizmeti Örneğinizde tek bir kayıt oluşturmak için kullanacaksınız.

    Not

    Komut çıktısını içeren pencereyi TPM simülatörü çıktısını içeren pencereyle karıştırmayın. Ön plana getirmek için özgün komut penceresini seçmeniz gerekebilir.

  1. GitHub kök klasörüne gidin.

  2. Sanal cihaz için HSM olması için TPM simülatörünü çalıştırın.

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. registerdevice adlı yeni, boş bir klasör oluşturun. Registerdevice klasöründe, komut isteminizin aşağıdaki komutunu kullanarak bir Package. JSON dosyası oluşturun (ile istenen tüm soruları yanıtlayıp npm veya size uygunsa Varsayılanları kabul ettiğinizden emin olun):

    npm init
    
  4. Aşağıdaki precursor paketlerini yükleyin:

    npm install node-gyp -g
    npm install ffi -g
    

    Not

    Yukarıdaki paketleri yüklerken bazı bilinen sorunlarla karşılaşabilirsiniz. Bu sorunları çözmek için, Yönetici olarak çalıştır modunda açtığınız komut istemini kullanarak npm install --global --production windows-build-tools komutunu çalıştırın; yolu, yüklü sürümünüzle değiştirdikten sonra SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140 komutunu çalıştırın ve ardından yukarıdaki yükleme komutlarını yeniden çalıştırın.

  5. Aşağıdaki komutu çalıştıran tüm gerekli paketleri registerdevice klasöründe komut istemde çalıştırın:

    npm install --save azure-iot-device azure-iot-device-mqtt azure-iot-security-tpm azure-iot-provisioning-device-http azure-iot-provisioning-device
    

    Komut aşağıdaki paketleri yüklenir:

    • TPM ile çalışan bir güvenlik istemcisi: azure-iot-security-tpm

    • cihazın, Cihaz Sağlama Hizmeti’ne bağlanması için bir aktarım: azure-iot-provisioning-device-http veya azure-iot-provisioning-device-amqp

    • aktarım veya güvenlik istemcisini kullanmak için bir istemci: azure-iot-provisioning-device

    • cihaz istemcisi: azure-iot-device

    • aktarım: azure-iot-device-amqp, azure-iot-device-mqtt veya azure-iot-device-http öğelerinden herhangi biri

    • önceden yüklemiş olduğunuz güvenlik istemcisi: azure-iot-security-tpm

      Not

      Bu hızlı başlangıçtaki örnekler ve azure-iot-provisioning-device-http azure-iot-device-mqtt aktarımlarını kullanır.

  6. Seçimlerinizi bir metin düzenleyicisi açın.

  7. registerdevice klasöründe yeni birExtractDevice.js oluşturun.

  8. Aşağıdaki require deyimlerini ExtractDevice.js dosyasının başlangıcına ekleyin:

    
    'use strict';
    
    var tpmSecurity = require('azure-iot-security-tpm');
    var tssJs = require("tss.js");
    
    var myTpm = new tpmSecurity.TpmSecurityClient(undefined, new tssJs.Tpm(true));
    
  9. Yöntemi uygulamak için aşağıdaki işlevi ekleyin:

    
    myTpm.getEndorsementKey(function(err, endorsementKey) {
      if (err) {
        console.log('The error returned from get key is: ' + err);
      } else {
        console.log('the endorsement key is: ' + endorsementKey.toString('base64'));
        myTpm.getRegistrationId((getRegistrationIdError, registrationId) => {
          if (getRegistrationIdError) {
            console.log('The error returned from get registration id is: ' + getRegistrationIdError);
          } else {
            console.log('The Registration Id is: ' + registrationId);
            process.exit();
          }
        });
      }
    });
    
  10. ExtractDevice.js dosyasını kaydedip kapatın.

    node ExtractDevice.js
    
  11. Örnek uygulamayı çalıştırın.

  12. Çıkış penceresinde cihaz kaydı için gereken Onay anahtarı ve Kayıt Kimliği görüntülenir. Bu değerleri kopyalayın.

  1. SAS belirteci kimlik doğrulamasını etkinleştirmek için aşağıdaki komutu çalıştırın (komut sanal cihaz için Visual Studio bir çözüm de üretir):

    cmake -Duse_prov_client:BOOL=ON -Duse_tpm_simulator:BOOL=ON ..
    
  2. İkinci bir komut istemi açın.

  3. İkinci komut isteminde TPM simülatörü klasörüne gidin.

  4. Sanal cihazın HSM'si olmak için TPM simülatörünü çalıştırın.

  5. Erişime İzin Ver'i seçin. Simülatör, 2321 ve 2322 bağlantı noktalarında bir yuvayı dinler. Bu komut penceresini kapatabilirsiniz; Bu hızlı başlangıç kılavuzunun sonuna kadar simülatörü çalıştırmaya devam edin.

.\azure-iot-sdk-python\c\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe

TPM Simülatörü

  1. Sanal cihazın HSM'si olmak için TPM simülatörünü çalıştırın.

  2. Erişime İzin Ver'i seçin. Simülatör, 2321 ve 2322 bağlantı noktalarında bir yuvayı dinler. Bu komut penceresini kapatabilirsiniz; Bu hızlı başlangıç kılavuzunun sonuna kadar simülatörü çalıştırmaya devam edin.

    .\azure-iot-sdk-java\provisioning\provisioning-tools\tpm-simulator\Simulator.exe
    

    TPM Simülatörü

  3. İkinci bir komut istemi açın.

  4. İkinci komut isteminde kök klasöre gidin ve örnek bağımlılıkları oluşturun.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Örnek klasörüne gidin.

    cd provisioning/provisioning-samples/provisioning-tpm-sample
    

TPM cihazından şifreleme anahtarlarını okuma

Bu bölümde, çalıştırarak bıraktığınız TPM simülatöründen onay anahtarını ve kayıt kimliğini okuma ve hala 2321 ve 2322 bağlantı noktalarını dinleyen bir örnek derleme ve yürütmeniz gerekir. Bu değerler, Cihaz Sağlama Hizmeti örneğinize cihaz kaydı için kullanılacak.

  1. Visual Studio.

  2. adlı cmake klasöründe oluşturulan çözümü azure_iot_sdks.sln açın.

  3. Çözüm Visual Studio çözümü derlemek > için Derleme Çözümü'ne tıklayın.

  4. Visual Studio'nun Çözüm Gezgini penceresinde Sağlama_Araçları klasörüne gidin. tpm_device_provision projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla’yı seçin.

  5. Çözüm Visual Studio hata ayıklamadan > başlat'ı seçerek çözümü çalıştırın. Uygulama bir Kayıt Kimliği ve Onay anahtarı okur ve görüntüler. Bu değerleri not veya kopyalayın. Bunlar, cihaz kaydı için sonraki bölümde kullanılacaktır.

  1. Visual Studio.

  2. adlı cmake klasöründe oluşturulan çözümü azure_iot_sdks.sln açın.

  3. Çözüm Visual Studio çözümü derlemek > için Derleme Çözümü'ne tıklayın.

  4. tpm_device_provision projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla’yı seçin.

  5. Çözümü çalıştırın. Çıkış penceresinde cihaz kaydı için gereken Onay anahtarı ve Kayıt Kimliği görüntülenir. Bu değerleri kopyalayın.

  1. Azure portal oturum açın, sol menüden Tüm kaynaklar düğmesini seçin ve Cihaz Sağlama Hizmetinizi açın. Kimlik Kapsamı ve Sağlama Hizmeti Genel Uç Noktası değerlerini not edin.

    Cihaz Sağlama Hizmeti bilgileri

  2. src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java girişini düzenleyerek önceden not ettiğiniz Kimlik Kapsamı ve Sağlama Hizmeti Genel Uç Noktası değerlerini girin.

    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;
    
  3. Dosyayı kaydedin.

  4. Projeyi derlemek, hedef klasöre gitmek ve oluşturulan .jar dosyasını yürütmek için aşağıdaki komutları kullanın (java {version} sürümünüzle değiştirin):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. Program çalıştırmaya başladığında Onay anahtarı ve Kayıt Kimliği görüntülenir. Sonraki bölüm için bu değerleri kopyalayın. Programı açık bırakarak emin olun.

Cihaz kaydı girişi oluşturma

  1. Azure Portal oturum açın.

  2. Sol menüde veya portal sayfasında Tüm kaynaklar'ı seçin.

  3. Cihaz Sağlama Hizmetinizi seçin.

  4. Kayıt Ayarlar Kayıtları yönet'i seçin.

  5. Sayfanın üst kısmında + Bireysel kayıt ekle'yi seçin.

  6. Kayıt Ekle paneline aşağıdaki bilgileri girin:

    • Kimlik onay Mekanizması olarak TPM seçeneğini belirleyin.

    • Tpm cihazınızın Kayıt Kimliği ve Onay anahtarını daha önce not alan değerlerden girin.

    • Sağlama hizmetinizle bağlanacak IoT hub'ını seçin.

    • İsteğe bağlı olarak, aşağıdaki bilgileri sağlayabilirsiniz:

      • Benzersiz bir Cihaz Kimliği girin (önerilen test-docs-device'ı kullanabilir veya kendi cihazlarınızı silebilir). Cihazınızı adlandırırken gizli veriler kullanmaktan kaçının. Sağlamayı seçmezsiniz, bunun yerine cihazı tanımlamak için kayıt kimliği kullanılır.
      • Başlangıç cihaz ikizi durumu alanını cihaz için istenen başlangıç yapılandırmasına göre güncelleştirin.
    • Tamamlandıktan sonra Kaydet düğmesine basın.

      Portala cihaz kayıt bilgilerini girme

  7. Kaydet’i seçin.

Cihazı kaydetme

Bu bölümde, cihazın önyükleme sırasını Cihaz Sağlama Hizmeti örneğine göndermek için Gelişmiş İleti Sıraya Alma Protokolü (AMQP) kullanmak üzere örnek kodu yapılandıracağız. Bu önyükleme sırası, cihazın Cihaz Sağlama Hizmeti örneğine bağlı bir IoT hub'a kayıtlı olmasına neden olur.

  1. Hizmet Azure portal, Cihaz Sağlama Hizmetinizin Genel Bakış sekmesini seçin.

  2. Kimlik Kapsamı değerini kopyalayın.

    Portaldan Cihaz Sağlama Hizmeti uç noktası bilgilerini ayıklama

  3. Visual Studio'nun Çözüm Gezgini penceresinde Sağlama_Örnekleri klasörüne gidin. prov_dev_client_sample adlı örnek projeyi genişletin. Kaynak Dosyalar'ı genişletin ve prov_dev_client_sample.c dosyasını açın.

  4. Dosyanın üst kısmında, aşağıda gösterildiği gibi her cihaz protokolü için #define deyimlerini bulun. Yalnızca SAMPLE_AMQP öğesinin açıklama haline getirilmediğinden emin olun.

    Şu anda, TPM Bireysel Kaydı için MQTT protokolü desteklenmemektedir.

    //
    // The protocol you wish to use should be uncommented
    //
    //#define SAMPLE_MQTT
    //#define SAMPLE_MQTT_OVER_WEBSOCKETS
    #define SAMPLE_AMQP
    //#define SAMPLE_AMQP_OVER_WEBSOCKETS
    //#define SAMPLE_HTTP
    
  5. id_scope sabitini bulun ve değeri daha önce kopyalamış olduğunuz Kimlik Kapsamı değerinizle değiştirin.

    static const char* id_scope = "0ne00002193";
    
  6. Aynı dosyada main() işlevinin tanımını bulun. hsm_type değişkeninin aşağıda gösterildiği gibi SECURE_DEVICE_TYPE_TPM yerine SECURE_DEVICE_TYPE_X509 değerine ayarlandığından emin olun.

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    hsm_type = SECURE_DEVICE_TYPE_X509;
    
  7. prov_dev_client_sample projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla’yı seçin.

  8. Çözüm Visual Studio hata ayıklamadan > başlat'ı seçerek çözümü çalıştırın. Projeyi yeniden oluşturma isteminde Evet'i seçerek projeyi çalıştırmadan önce yeniden çalıştırın.

    Aşağıdaki çıkış, başarıyla önyüklemesi yapılan cihaz istemci örneğini sağlama ve IoT hub bilgilerini almak üzere Cihaz Sağlama Hizmeti'ne bağlanıp kaydolma işlemlerinin bir örneğidir:

    Provisioning API Version: 1.2.7
    
    Registering... Press enter key to interrupt.
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: test-docs-cert-device
    
  1. Hizmet Azure portal, Cihaz Sağlama Hizmetinizin Genel Bakış sekmesini seçin.

  2. Kimlik Kapsamı değerini kopyalayın.

    Portal dikey penceresinden Cihaz Sağlama Hizmeti uç noktası bilgilerini ayıklama

  3. Tercih istediğiniz bir metin düzenleyicisini açın.

  4. Registerdevice klasöründe yeni bir RegisterDevice.js dosyası oluşturun.

  5. require RegisterDevice.js dosyasının başlangıcına aşağıdaki deyimlerini ekleyin:

    
    'use strict';
    
    var ProvisioningTransport = require('azure-iot-provisioning-device-http').Http;
    var iotHubTransport = require('azure-iot-device-mqtt').Mqtt;
    var Client = require('azure-iot-device').Client;
    var Message = require('azure-iot-device').Message;
    var tpmSecurity = require('azure-iot-security-tpm');
    var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;
    

    Not

    Node.js için Azure IoT SDK'sı, AMQP, AMQP WS ve MQTT WS gibi ek protokolleri destekler. Diğer örnekler için bkz. Node.js için Cihaz Sağlama Hizmeti SDK'sı örnekleri.

  6. globalDeviceEndpoint ve idScope değişkenlerini ekleyin ve ProvisioningDeviceClient örneğini oluştururken bunları kullanın. {globalDeviceEndpoint} ve {idScope} değerlerini 1. Adım’daki Genel Cihaz Uç Noktası ve Kimlik Kapsamı değerleriyle değiştirin:

    
    var provisioningHost = '{globalDeviceEndpoint}';
    var idScope = '{idScope}';
    
    var tssJs = require("tss.js");
    var securityClient = new tpmSecurity.TpmSecurityClient('', new tssJs.Tpm(true));
    // if using non-simulated device, replace the above line with following:
    //var securityClient = new tpmSecurity.TpmSecurityClient();
    
    var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), securityClient);
    
  7. Yöntemi cihazda uygulamak için aşağıdaki işlevi ekleyin:

    
    provisioningClient.register(function(err, result) {
      if (err) {
        console.log("error registering device: " + err);
      } else {
        console.log('registration succeeded');
        console.log('assigned hub=' + result.registrationState.assignedHub);
        console.log('deviceId=' + result.registrationState.deviceId);
        var tpmAuthenticationProvider = tpmSecurity.TpmAuthenticationProvider.fromTpmSecurityClient(result.registrationState.deviceId, result.registrationState.assignedHub, securityClient);
        var hubClient = Client.fromAuthenticationProvider(tpmAuthenticationProvider, iotHubTransport);
    
        var connectCallback = function (err) {
          if (err) {
            console.error('Could not connect: ' + err.message);
          } else {
            console.log('Client connected');
            var message = new Message('Hello world');
            hubClient.sendEvent(message, printResultFor('send'));
          }
        };
    
        hubClient.open(connectCallback);
    
        function printResultFor(op) {
          return function printResult(err, res) {
            if (err) console.log(op + ' error: ' + err.toString());
            if (res) console.log(op + ' status: ' + res.constructor.name);
            process.exit(1);
          };
        }
      }
    });
    
  8. RegisterDevice.js dosyasını kaydedip kapatın.

  9. Şu komutu çalıştırın:

    node RegisterDevice.js
    
  10. IoT hub bilgilerinizi almak için cihaz önyüklemesi ve Cihaz Sağlama Hizmetine bağlanma benzetimi gerçekleştiren iletilere dikkat edin.

  1. Git deposunun örnekler klasörüne gidin.

    cd azure-iot-sdk-python/provisioning_device_client/samples
    
  2. Python IDE 'nizi kullanarak, sağlama _ aygıtı _ Client _ Sample.py (replace) adlı Python betiğini {globalServiceEndpoint} ve {idScope} daha önce kopyaladığınız değerleri düzenleyin. Ayrıca Güvenlik _ cihaz _ türünün olarak ayarlandığından emin olun ProvisioningSecurityDeviceType.TPM .

    GLOBAL_PROV_URI = "{globalServiceEndpoint}"
    ID_SCOPE = "{idScope}"
    SECURITY_DEVICE_TYPE = ProvisioningSecurityDeviceType.TPM
    PROTOCOL = ProvisioningTransportProvider.HTTP
    

    Hizmet bilgileri

  3. Örnek uygulamayı çalıştırın.

    python provisioning_device_client_sample.py
    
  4. IoT hub bilgilerinizi almak için cihaz önyüklemesi ve Cihaz Sağlama Hizmetine bağlanma benzetimi gerçekleştiren iletilere dikkat edin.

  1. Makinenizde Java örnek kodunu çalıştıran komut penceresinde, uygulamayı çalıştırmaya devam etmek için ENTER tuşuna basın. IoT hub bilgilerinizi almak için cihaz önyüklemesi ve Cihaz Sağlama Hizmetine bağlanma benzetimi gerçekleştiren iletilere dikkat edin.

    Java TPM cihazı programının son hali

Cihaz sağlama kaydınızı onaylayın

  1. Azure Portal gidin.

  2. Sol taraftaki menüde veya portal sayfasında, tüm kaynaklar' ı seçin.

  3. Cihazınızın atandığı IoT Hub 'ını seçin.

  4. Araştırıcılar menüsünde IoT cihazları' nı seçin.

  5. Cihazınız başarıyla sağlandıysa, cihaz KIMLIĞI listede, durum etkin olarak ayarlanmış olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın en üstündeki Yenile ' yi seçin.

    Cihaz, C için IoT Hub 'ına kaydedilir

    Cihaz, CSharp IoT Hub 'ına kaydedilir

    Cihaz, Node.js için IoT Hub ile kaydedildi

    Cihaz IOT hub'da kayıtlı

    Cihaz IOT hub'da kayıtlı

Not

Cihazınız için başlangıç cihaz ikizi durumu ayarının kayıt girişindeki varsayılan değerini değiştirdiyseniz istenen ikili durumu hub'dan çekerek ona göre hareket edebilir. Daha fazla bilgi için bkz. IoT Hub cihaz TWINS 'ı anlama ve kullanma.

Kaynakları temizleme

Cihaz istemci örneğini üzerinde çalışmaya ve keşfetmeye devam etmeyi planlıyorsanız, bu hızlı başlangıçta oluşturulan kaynakları temizlemeyin. Devam etmeyi planlamıyorsanız, bu hızlı başlangıç tarafından oluşturulan tüm kaynakları silmek için aşağıdaki adımları kullanın.

Cihaz kaydını silme

  1. Makinenizde cihaz istemci örnek çıktı penceresini kapatın.

  2. Azure portal sol taraftaki menüden tüm kaynaklar' ı seçin.

  3. Cihaz sağlama hizmetinizi seçin.

  4. Ayarlar menüsünde kayıtları yönet' i seçin.

  5. Bireysel kayıtlar sekmesini seçin.

  6. Bu hızlı başlangıçta kaydettiğiniz cihazın kayıt kimliği ' nin yanındaki onay kutusunu işaretleyin.

  7. Sayfanın üst kısmında Sil' i seçin.

IoT Hub 'tan cihaz kaydınızı silme

  1. Azure portal sol taraftaki menüden tüm kaynaklar' ı seçin.

  2. IoT Hub 'ınızı seçin.

  3. Araştırıcılar menüsünde IoT cihazları' nı seçin.

  4. Bu hızlı başlangıçta kaydettiğiniz cihazın CIHAZ kimliği ' nin yanındaki onay kutusunu işaretleyin.

  5. Sayfanın üst kısmında Sil' i seçin.

Sonraki adımlar

Bu hızlı başlangıçta, makinenizde bir TPM sanal cihazı oluşturdunuz ve IoT Hub cihaz sağlama hizmetini kullanarak IoT Hub 'ınıza sağladınız. TPM cihazınızı programlı bir şekilde kaydetmeyi öğrenmek için bir TPM cihazının programlı kaydı için hızlı başlangıç 'a geçin.