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:
Birden çok ilgili 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.
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
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure portalıyla IoT Hub Cihazı Sağlama Hizmeti'ni ayarlama makalesindeki adımları tamamlayın.
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.
- 'C++ile masaüstü geliştirme' iş yükü etkinleştirilmiş Visual Studio 2019. Visual Studio 2015 ve Visual Studio 2017 de desteklenir.
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
- v4.0+ Node.js yükleyin.
Makinenize Java SE Development Kit 8 veya üzerini yükleyin.
Maven'ı indirip yükleyin.
- 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.
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.Bir web tarayıcısı açın ve Azure IoT C SDK'sının Yayın sayfasına gidin.
Sayfanın üst kısmındaki Etiketler sekmesini seçin.
Azure IoT C SDK'sının en son sürümünün etiket adını kopyalayın.
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.
İşlem tamamlandığında dizinden
azure-iot-sdk-c
aşağıdaki komutları çalıştırın:mkdir cmake cd cmake
Git CMD veya Git Bash komut satırı ortamını açın.
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
Git CMD veya Git Bash komut satırı ortamını açın.
Aşağıdaki komutu kullanarak azure-utpm-c GitHub deposunu kopyalayın:
git clone https://github.com/Azure/azure-utpm-c.git --recursive
Git CMD veya Git Bash komut satırı ortamını açın.
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.
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.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
Kopyaladığınız git deposunun kök klasörüne gidin.
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.
GitHub kök klasörüne gidin.
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
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
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 sonraSET 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.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
veyaazure-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-mqtt
veyaazure-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
.
Seçimlerinizin bir metin düzenleyicisini açın.
registerdevice klasöründe yeni bir ExtractDevice.js dosyası oluşturun.
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));
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(); } }); } });
ExtractDevice.js dosyasını kaydedip kapatın.
node ExtractDevice.js
Örnek uygulamayı çalıştırın.
Çıkış penceresinde Onay anahtarı ve cihaz kaydı için gereken Kayıt Kimliği görüntülenir. Bu değerleri kopyalayın.
Sanal cihazın HSM'si olmak için TPM simülatörünü çalıştırın.
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
İkinci bir komut istemi açın.
İ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
Örnek klasörüne gidin.
cd provisioning/provisioning-samples/provisioning-tpm-sample
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.
Visual Studio’yu başlatın.
adlı
azure_iot_sdks.sln
cmake klasöründe oluşturulan çözümü açın.Çözümdeki tüm projeleri derlemek için Visual Studio menüsünde Derle>Çözümü Derle'yi seçin.
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.
Çö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.
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.
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;
Dosyayı kaydedin.
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
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.
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\'
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
Azure portalında oturum açın ve Cihaz Sağlama Hizmeti örneğine gidin.
Gezinti menüsünün Ayarlar bölümünden Kayıtları yönet'i seçin.
Bireysel kayıtlar sekmesini ve ardından Bireysel kayıt ekle'yi seçin.
Kayıt ekle sayfasının Kayıt + sağlama sayfası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. İleri: IoT hub'ları'ı seçin.
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.İleri: Cihaz ayarları'nı seçin
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.
Sonraki: Gözden geçirme ve oluşturma’yı seçin.
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.
Azure portalında oturum açın ve Cihaz Sağlama Hizmeti örneğine gidin.
Gezinti menüsünün Ayarlar bölümünden Kayıtları yönet'i seçin.
Bireysel kayıtlar sekmesini ve ardından Bireysel kayıt ekle'yi seçin.
Kayıt ekle sayfasının Kayıt + sağlama sayfası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. İleri: IoT hub'ları'ı seçin.
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.İleri: Cihaz ayarları'nı seçin
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.
Sonraki: Gözden geçirme ve oluşturma’yı seçin.
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.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
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.
Dosyanın üst kısmında, aşağıda gösterildiği gibi her cihaz protokolü için
#define
deyimlerini bulun. YalnızcaSAMPLE_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
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";
Aynı dosyada
main()
işlevinin tanımını bulun. Değişkeninhsm_type
aşağıda gösterildiği gibi olarak ayarlandığındanSECURE_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;
prov_dev_client_sample projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin.
Çö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
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
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\'
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.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
Seçtiğiniz bir metin düzenleyicisini açın.
registerdevice klasöründe yeni bir RegisterDevice.js dosyası oluşturun.
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.
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);
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); }; } } });
RegisterDevice.js dosyasını kaydedip kapatın.
Şu komutu çalıştırın:
node RegisterDevice.js
IoT hub bilgilerinizi almak için cihaz önyüklemesi ve Cihaz Sağlama Hizmetine bağlanma benzetimi gerçekleştiren iletilere dikkat edin.
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.
Cihaz sağlama kaydınızı onaylayın
Azure Portal’ında oturum açın.
Sol taraftaki menüden veya portal sayfasında Tüm kaynaklar'ı seçin.
Cihazınızın atandığı IoT hub'ını seçin.
Gezgin menüsünde IoT Cihazları'nı seçin.
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.
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.
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.
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.
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
Makinenizde cihaz istemci örnek çıktı penceresini kapatın.
Azure portalının sol tarafındaki menüden Tüm kaynaklar'ı seçin.
Cihaz Sağlama Hizmetinizi seçin.
Ayarlar menüsünde Kayıtları yönet'i seçin.
Bireysel kayıtlar sekmesini seçin.
Bu hızlı başlangıçta kaydettiğiniz cihazın kayıt kimliğinin yanındaki onay kutusunu seçin.
Sayfanın üst kısmından Sil’i seçin.
IoT Hub'dan cihaz kaydınızı silme
Azure portalının sol tarafındaki menüden Tüm kaynaklar'ı seçin.
IoT hub'ınızı seçin.
Explorers menüsünde IoT cihazları'nı seçin.
Bu hızlı başlangıçta kaydettiğiniz cihazın cihaz kimliğinin yanındaki onay kutusunu seçin.
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.