Hızlı Başlangıç: Sanal TPM cihazı sağlama

Bu hızlı başlangıçta, Windows makinenizde bir simülasyon cihazı oluşturacaksınız. Simülasyon cihazı, kimlik doğrulaması için Güvenilir Platform Modülü (TPM) kanıtlama mekanizmasını kullanacak şekilde yapılandırılır. Cihazınızı yapılandırdıktan sonra Azure IoT Hub Cihazı Sağlama Hizmeti'ni kullanarak IoT hub'ınıza sağlarsınız. Ardından örnek kod, cihazı bir Cihaz Sağlama Hizmeti örneğine kaydetmeye yardımcı olmak için kullanılır.

Sağlama işlemini bilmiyorsanız, sağlama genel bakışını 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:

Bu makalede bireysel kayıtlar gösterilmektedir.

Güvenilir Platform Modülü (TPM) kanıtlaması Python SDK'sında desteklenmez. Python ile simetrik anahtarları veya X.509 sertifikalarını kullanarak bir cihaz sağlayabilirsiniz.

Önkoşullar

Aşağıdaki önkoşullar bir Windows geliştirme ortamı içindir. Linux veya macOS için SDK belgelerindeki Geliştirme ortamınızı hazırlama bölümündeki uygun bölüme bakın.

  • Windows tabanlı makinenizde tpm 2.0 donanım güvenlik modülü.

  • Windows tabanlı makinenize .NET Core SDK 6.0 veya üzerini yükleyin. 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 penceresi tarafından erişilebilen ortam değişkenlerine eklendiğinden emin olun. Yüklenecek araçların en son sürümü git için, yerel Git deponuzla etkileşim kurmak için kullanabileceğiniz komut satırı uygulaması Git Bash'i içeren Yazılım Özgürlüğü Koruması'nın Git istemci araçlarına 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ırlayacaksınız.

  1. En son CMake derleme sistemini indirin.

    Önemli

    Yüklemeyi başlatmadan CMake önce makinenizde Visual Studio önkoşullarının (Visual Studio ve 'C++ile masaüstü geliştirme' iş yükü) yüklü olduğunu onaylayın. Ö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ı oluşturamaya çalışmadığını unutmayın. CMake'nin en son sürümünü kullandığınızdan emin olun.

  2. Bir web tarayıcısı açın ve Azure IoT C SDK'sının Yayın sayfasına gidin.

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

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

  5. Komut istemini veya Git Bash kabuğunu açın. C GitHub deposu için Azure IoT Cihaz SDK'sının en son sürümünü kopyalamak için aşağıdaki komutları çalıştırın. değerini önceki adımda kopyaladığınız etiketle değiştirin <release-tag> , örneğin: 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
    

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

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

    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 deposu için Azure IoT SDK'sını kopyalayın:

    git clone https://github.com/Azure/azure-iot-sdk-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 Java GitHub deposunu kopyalayın:

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

TPM cihaz simülatörünü derleme ve çalıştırma

Bu bölümde TPM simülatörünü derleyip ç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ıcın sonuna 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'sını oluşturmak için aşağıdaki komutu çalıştırın. Dizinde cmake simülasyon cihazı için bir Visual Studio çözümü 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 -Duse_tpm_simulator:BOOL=ON ..
    

    İpucu

    cmake C++ derleyicinizi bulamazsa, yukarıdaki komutu çalıştırırken derleme hataları alabilirsiniz. Böyle bir durumda Visual Studio komut isteminde komutunu çalıştırmayı deneyin.

  2. Derleme başarılı olduğunda, son birkaç çıkış satırı aşağıdaki çıkışa 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. Kopyaladığı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 herhangi bir çıkış görüntülemez. BIR TPM cihazının benzetimini yaptıkçe çalışmaya devam etmesine izin verin.

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

  2. Sanal cihazın HSM'si olmak 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 isteminizde aşağıdaki komutu kullanarak bir package.json dosyası oluşturun (size uygunsa, tarafından npm sorulan tüm soruları yanıtladığınızdan veya 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-napi -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ündeki komut isteminize yükleyin:

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

    komutu aşağıdaki paketleri yükler:

    • 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 ve güvenlik istemcisini kullanan bir istemci: azure-iot-provisioning-device

    • Cihaz istemcisi: azure-iot-device

    • Aktarım: herhangi biri azure-iot-device-amqp, azure-iot-device-mqttveya azure-iot-device-http

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

      Not

      Bu hızlı başlangıçtaki örneklerde ve azure-iot-device-mqtt aktarımları kullanılırazure-iot-provisioning-device-http.

  6. Seçimlerinizin bir metin düzenleyicisini açın.

  7. registerdevice klasöründe yeni bir ExtractDevice.js dosyası 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 Onay anahtarı ve cihaz kaydı için gereken Kayıt Kimliği görüntülenir. Bu değerleri kopyalayın.

  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ındaki bir yuvayı dinler. Bu komut penceresini kapatmayın; bu hızlı başlangıç kılavuzunun sonuna kadar bu simülatörü çalışır durumda tutmanız gerekir.

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

    TPM Simulator

  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ırmayı bıraktığınız TPM simülatöründen onay anahtarını ve kayıt kimliğini okuyan ve 2321 ve 2322 bağlantı noktalarını dinlemeye devam eden bir örnek oluşturacak ve yürüteceksiniz. Bu değerler, Cihaz Sağlama Hizmeti örneğinize cihaz kaydı için kullanılacak.

  1. Visual Studio’yu başlatın.

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

  3. Çözümdeki tüm projeleri derlemek için Visual Studio menüsünde Derle>Çözümü Derle'yi seçin.

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

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

  1. Azure portalında oturum açın, sol taraftaki 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.

    Device Provisioning Service information

  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 oluşturmak, hedef klasöre gitmek ve oluşturulan .jar dosyasını yürütmek için aşağıdaki komutları kullanın (değerini Java sürümünüzle değiştirin {version}):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. Program çalışmaya 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ı çalışır durumda bıraktığınızdan emin olun.

Bu bölümde TPM 2.0 donanım güvenlik modülünüzden onay anahtarını okuyan bir örnek oluşturacak ve yürüteceksiniz. Bu değer, Cihaz Sağlama Hizmeti örneğiniz ile cihaz kaydı için kullanılır.

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

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  2. TPM cihaz sağlama örneğini derlemek ve çalıştırmak için aşağıdaki komutu yazın. Tpm 2.0 donanım güvenlik modülünüzden döndürülen onay anahtarını daha sonra cihazınızı kaydederken kullanmak üzere kopyalayın.

    dotnet run -- -e
    

Cihaz kaydı girişi oluşturma

  1. Azure portalında oturum açın ve Cihaz Sağlama Hizmeti örneğine gidin.

  2. Gezinti menüsünün Ayarlar bölümünde Kayıtları yönet'i seçin.

  3. Bireysel kayıtlar sekmesini ve ardından Bireysel kayıt ekle'yi seçin.

    Screenshot that shows the add individual enrollment option.

  4. Kayıt ekle sayfasının Kayıt + sağlamasayfasında, kayıt ayrıntılarını yapılandırmak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Tasdik Kanıtlama mekanizması olarak Güvenilir Platform Modülü (TPM) seçeneğini belirleyin.
    Güvenilen Platform Modülü (TPM) ayarları Bu kayıt için cihazı doğrulamak için kullanılacak onay anahtarını sağlayın. Onay anahtarını cihazınızın TPM'sinden alabilirsiniz.
    Kayıt Kimliği Cihaz için benzersiz kayıt kimliğini belirtin. Kayıt kimliğini cihazınızın TPM'sinden alabilirsiniz.
    Sağlama durumu Bu kaydın cihazını sağlamak için kullanılabilir olmasını istiyorsanız Bu kaydı etkinleştir kutusunu işaretleyin. Kaydın devre dışı bırakılmasını istiyorsanız bu kutunun işaretini kaldırın. Bu ayarı daha sonra değiştirebilirsiniz.
    yeniden sağlama ilkesi DPS'nin yeniden sağlama isteyen cihazları nasıl işlemesini istediğinizi yansıtan bir yeniden sağlama ilkesi seçin. Daha fazla bilgi için bkz . İlkeleri yeniden sağlama.
  5. İleri: IoT hub'ları'ı seçin.

  6. Kayıt ekle sayfasının IoT hub'ları sekmesinde, kaydın cihazları hangi IoT hub'larına sağlayabileceğini belirlemek için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Hedef IoT hub'ları Bağlı IoT hub'larınızdan birini veya daha fazlasını seçin veya bir IoT hub'ına yeni bir bağlantı ekleyin. IoT hub'larını DPS örneğinize bağlama hakkında daha fazla bilgi edinmek için bkz . IoT hub'larını bağlama ve yönetme.
    Ayırma ilkesi Birden fazla bağlı IoT hub'ı seçtiyseniz cihazları farklı hub'lara nasıl atamak istediğinizi seçin. Ayırma ilkeleri hakkında daha fazla bilgi edinmek için bkz . Ayırma ilkelerini kullanma.

    Yalnızca bir bağlantılı IoT hub'ı seçtiyseniz, Eşit ağırlıklı dağıtım ilkesini kullanmanızı öneririz.
  7. İleri: Cihaz ayarları'nı seçin

  8. Kayıt ekle sayfasının Cihaz ayarları sekmesinde, yeni sağlanan cihazların nasıl yapılandırılacağını tanımlamak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Cihaz Kimliği IoT Hub'da sağlanan cihaza atanacak bir cihaz kimliği sağlayın. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.
    IoT Edge Sağlanan cihaz Azure IoT Edge çalıştıracaksa Sağlanan cihazlarda IoT Edge'i etkinleştir'i denetleyin. Bu kayıt IoT Edge özellikli olmayan bir cihaza yönelikse bu kutunun işaretini kaldırın.
    Cihaz etiketleri Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz etiketleri sağlamak için bu metin kutusunu kullanın.
    İstenen özellikler Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz tüm istenen özellikleri sağlamak için bu metin kutusunu kullanın.

    Daha fazla bilgi için bkz. IoT Hub'ındaki cihaz ikizlerini kavrama ve kullanma.

  9. Sonraki: Gözden geçirme ve oluşturma’yı seçin.

  10. Gözden Geçir + oluştur sekmesinde tüm değerlerinizi doğrulayın ve Oluştur'u seçin.

Bu hızlı başlangıç için C# TPM örneği bir kayıt kimliği sağlamaz. Bireysel kayıt için bir kayıt eklemeniz istendiğinde, kendi değerinizi belirtin.

  1. Azure portalında oturum açın ve Cihaz Sağlama Hizmeti örneğine gidin.

  2. Gezinti menüsünün Ayarlar bölümünde Kayıtları yönet'i seçin.

  3. Bireysel kayıtlar sekmesini ve ardından Bireysel kayıt ekle'yi seçin.

    Screenshot that shows the add individual enrollment option.

  4. Kayıt ekle sayfasının Kayıt + sağlamasayfasında, kayıt ayrıntılarını yapılandırmak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Tasdik Kanıtlama mekanizması olarak Güvenilir Platform Modülü (TPM) seçeneğini belirleyin.
    Güvenilen Platform Modülü (TPM) ayarları Bu kayıt için cihazı doğrulamak için kullanılacak onay anahtarını sağlayın. Onay anahtarını cihazınızın TPM'sinden alabilirsiniz.
    Kayıt Kimliği Cihaz için benzersiz kayıt kimliğini belirtin. Kayıt kimliğini cihazınızın TPM'sinden alabilirsiniz.
    Sağlama durumu Bu kaydın cihazını sağlamak için kullanılabilir olmasını istiyorsanız Bu kaydı etkinleştir kutusunu işaretleyin. Kaydın devre dışı bırakılmasını istiyorsanız bu kutunun işaretini kaldırın. Bu ayarı daha sonra değiştirebilirsiniz.
    yeniden sağlama ilkesi DPS'nin yeniden sağlama isteyen cihazları nasıl işlemesini istediğinizi yansıtan bir yeniden sağlama ilkesi seçin. Daha fazla bilgi için bkz . İlkeleri yeniden sağlama.
  5. İleri: IoT hub'ları'ı seçin.

  6. Kayıt ekle sayfasının IoT hub'ları sekmesinde, kaydın cihazları hangi IoT hub'larına sağlayabileceğini belirlemek için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Hedef IoT hub'ları Bağlı IoT hub'larınızdan birini veya daha fazlasını seçin veya bir IoT hub'ına yeni bir bağlantı ekleyin. IoT hub'larını DPS örneğinize bağlama hakkında daha fazla bilgi edinmek için bkz . IoT hub'larını bağlama ve yönetme.
    Ayırma ilkesi Birden fazla bağlı IoT hub'ı seçtiyseniz cihazları farklı hub'lara nasıl atamak istediğinizi seçin. Ayırma ilkeleri hakkında daha fazla bilgi edinmek için bkz . Ayırma ilkelerini kullanma.

    Yalnızca bir bağlantılı IoT hub'ı seçtiyseniz, Eşit ağırlıklı dağıtım ilkesini kullanmanızı öneririz.
  7. İleri: Cihaz ayarları'nı seçin

  8. Kayıt ekle sayfasının Cihaz ayarları sekmesinde, yeni sağlanan cihazların nasıl yapılandırılacağını tanımlamak için aşağıdaki bilgileri sağlayın:

    Alan Açıklama
    Cihaz Kimliği IoT Hub'da sağlanan cihaza atanacak bir cihaz kimliği sağlayın. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.
    IoT Edge Sağlanan cihaz Azure IoT Edge çalıştıracaksa Sağlanan cihazlarda IoT Edge'i etkinleştir'i denetleyin. Bu kayıt IoT Edge özellikli olmayan bir cihaza yönelikse bu kutunun işaretini kaldırın.
    Cihaz etiketleri Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz etiketleri sağlamak için bu metin kutusunu kullanın.
    İstenen özellikler Sağlanan cihazın cihaz ikizi için uygulamak istediğiniz tüm istenen özellikleri sağlamak için bu metin kutusunu kullanın.

    Daha fazla bilgi için bkz. IoT Hub'ındaki cihaz ikizlerini kavrama ve kullanma.

  9. Sonraki: Gözden geçirme ve oluşturma’yı seçin.

  10. Gözden Geçir + oluştur sekmesinde tüm değerlerinizi doğrulayın ve Oluştur'u 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 Kuyruğa Alma Protokolü'ni (AMQP) kullanacak örnek kodu yapılandıracaksınız. Bu önyükleme sırası, cihazın Cihaz Sağlama Hizmeti örneğine bağlı bir IoT hub'ına kaydedilmesine neden olur.

  1. Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.

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

    Extract Device Provisioning Service endpoint information from the portal

  3. Visual Studio'nun Çözüm Gezgini penceresinde Provision_Samples 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.

    MQTT protokolü şu anda TPM Bireysel Kaydı için 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. Değişkenin hsm_type aşağıda gösterildiği gibi olarak ayarlandığından SECURE_DEVICE_TYPE_TPM emin olun.

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

  8. Çözümü çalıştırmak için Visual Studio menüsünde Hata Ayıkla>Hata ayıklama olmadan başlat'ı seçin. Projeyi yeniden derleme isteminde Evet'i seçerek çalıştırmadan önce projeyi yeniden oluşturun.

    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. Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.

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

    Copy provisioning service Scope ID from the portal blade

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

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. Cihazınızı kaydetmek için aşağıdaki komutu çalıştırın. değerini kopyaladığınız DPS değeriyle ve <RegistrationId> cihaz kaydını oluştururken kullandığınız değerle değiştirin<IdScope>.

    dotnet run -- -s <IdScope> -r <RegistrationId>
    

    Cihaz kaydı başarılı olursa aşağıdaki iletileri görürsünüz:

    Initializing security using the local TPM...
    Initializing the device provisioning client...
    Initialized for registration Id <RegistrationId>.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device <RegistrationId> registered to <HubName>.azure-devices.net.
    Creating TPM authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    
  1. Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.

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

    Extract Device Provisioning Service endpoint information from the portal blade

  3. Seçtiğiniz bir metin düzenleyicisini açın.

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

  5. Aşağıdaki require deyimlerini RegisterDevice.js dosyasının başlangıcına 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. 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 device program final

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

  1. Azure Portal’ında oturum açın.

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

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

  4. Gezgin menüsünde IoT Cihazları'nı seçin.

  1. Cihazınız başarıyla sağlandıysa, cihaz kimliği listede Durum olarak ayarlanmış olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın üst kısmındaki Yenile'yi seçin.

    Device is registered with the IoT hub for C

  1. Cihazınız başarıyla sağlandıysa, cihaz kimliği listede Durum olarak ayarlanmış olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın üst kısmındaki Yenile'yi seçin.

    Device is registered with the IoT hub for C#

  1. Cihazınız başarıyla sağlandıysa, cihaz kimliği listede Durum olarak ayarlanmış olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın üst kısmındaki Yenile'yi seçin.

    Device is registered with the IoT hub for Node.js

  1. Cihazınız başarıyla sağlandıysa, cihaz kimliği listede Durum olarak ayarlanmış olarak görünmelidir. Cihazınızı görmüyorsanız sayfanın üst kısmındaki Yenile'yi seçin.

    Device is registered with the IoT hub

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'ındaki cihaz ikizlerini kavrama ve kullanma.

Kaynakları temizleme

Cihaz istemci örneği üzerinde çalışmaya ve keşfetmeye devam etmek istiyorsanız, bu hızlı başlangıçta oluşturulan kaynakları temizlemeyin. Devam etmek istemiyorsanı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ızı silme

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

  2. Azure portalının sol tarafındaki 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ğinin yanındaki onay kutusunu seçin.

  7. Sayfanın üst kısmından Sil’i seçin.

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

  1. Azure portalının sol tarafındaki menüden Tüm kaynaklar'ı seçin.

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

  3. Explorers menüsünde IoT cihazları'nı seçin.

  4. Bu hızlı başlangıçta kaydettiğiniz cihazın cihaz kimliğinin yanındaki onay kutusunu seçin.

  5. Sayfanın üst kısmından Sil’i seçin.

Sonraki adımlar

Bu hızlı başlangıçta, tek bir kayıt kullanarak IoT hub'ınıza tek bir cihaz sağladınız. Ardından, birden çok hub'da birden çok cihaz sağlamayı öğrenin.