Hızlı Başlangıç: X.509 sertifikası simülasyon cihazı sağlama
Bu hızlı başlangıçta, Windows makinenizde bir sanal cihaz oluşturacaksınız. Simülasyon cihazı, kimlik doğrulaması için X.509 sertifika kanıtlamasını kullanacak şekilde yapılandırılmıştı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.
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.
Bu hızlı başlangıçta Windows tabanlı iş istasyonu için bir çözüm gösterilmektedir. Ancak, Linux'ta yordamları da gerçekleştirebilirsiniz. Linux örneği için bkz . Öğretici: Coğrafi gecikme süresi için sağlama.
Ö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ü etkinken Visual Studio 2022'yi yükleyin. Visual Studio 2015, Visual Studio 2017 ve Visual Studio 19 da desteklenir. Linux veya macOS için SDK belgelerindeki Geliştirme ortamınızı hazırlama bölümündeki uygun bölüme bakın.
En son CMake derleme sistemini yükleyin. CMake yürütülebilir dosyasını yolunuza ekleyen seçeneği işaretlediğinizden emin olun.
Ö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.
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ı makinenize .NET SDK 6.0 veya üzerini yükleyin. Sürümünüzü denetlemek için aşağıdaki komutu kullanabilirsiniz.
dotnet --info
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.
- Makinenize Node.js v4.0 veya üzerini yükleyin.
Aşağıdaki önkoşullar bir Windows geliştirme ortamı içindir.
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.
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.Makinenizde OpenSSL'nin yüklü olduğundan emin olun. Windows'da, Git yüklemeniz openSSL yüklemesini içerir. OpenSSL'ye Git Bash isteminden erişebilirsiniz. OpenSSL'nin yüklü olduğunu doğrulamak için bir Git Bash istemi açın ve girin
openssl version
.Not
OpenSSL hakkında bilgi sahibi değilseniz ve Windows makinenizde zaten yüklü değilse Git Bash isteminden OpenSSL kullanmanızı öneririz. Alternatif olarak, kaynak kodu indirmeyi ve OpenSSL oluşturmayı seçebilirsiniz. Daha fazla bilgi edinmek için OpenSSL İndirmeleri sayfasına bakın. Alternatif olarak, üçüncü taraflardan önceden oluşturulmuş OpenSSL'i de indirebilirsiniz. Daha fazla bilgi edinmek için OpenSSL wiki'sine bakın. Microsoft, üçüncü taraflardan indirilen paketlerin geçerliliği konusunda hiçbir garantide bulunmaz. OpenSSL oluşturmayı veya indirmeyi seçerseniz, OpenSSL ikili dosyasının yolunuzda erişilebilir olduğundan ve ortam değişkeninin
OPENSSL_CNF
openssl.cnf dosyanızın yoluna ayarlandığından emin olun.Hem Windows komut istemini hem de Git Bash istemini açın.
Bu hızlı başlangıçtaki adımlarda, Git'in bir parçası olarak yüklenen bir Windows makinesi ve OpenSSL yüklemesi kullandığınız varsayılır. OpenSSL komutlarını vermek için Git Bash istemini ve diğer her şey için Windows komut istemini kullanırsınız. Linux kullanıyorsanız, bash kabuğundan tüm komutları yayımlayabilirsiniz.
Geliştirme ortamınızı hazırlama
Bu bölümde, Azure IoT C SDK'sını oluşturmak için kullanılan bir geliştirme ortamı hazırlamış olursunuz. Örnek kod, cihazın önyükleme sırası sırasında cihazı sağlamayı dener.
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.
Windows komut isteminizde aşağıdaki komutları çalıştırarak C GitHub deposu için Azure IoT Cihaz SDK'sının en son sürümünü kopyalayı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
Kod örneği, X.509 kimlik doğrulaması aracılığıyla kanıtlama sağlamak için bir X.509 sertifikası kullanır. Sdk'nın geliştirme platformunuza özgü ve cihaz sağlama istemcisini içeren bir sürümü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.Aşağıdaki komutta ile
-Dhsm_custom_lib
kullanılan yolu belirtirken, daha önce oluşturduğunuz dizindeki kitaplığın mutlak yolunu kullandığınızdancmake
emin olun. Gösterilen yol, C SDK'sını C sürücüsünün kök dizinine kopyaladığınız varsayılır. Başka bir dizin kullandıysanız yolu buna göre ayarlayın.
İpucu
cmake
C++ derleyicinizi bulamazsanız, 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:
-- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000. -- The C compiler identification is MSVC 19.32.31329.0 -- The CXX compiler identification is MSVC 19.32.31329.0 ... -- Configuring done -- Generating done -- Build files have been written to: C:/azure-iot-sdk-c/cmake
Windows komut isteminizde 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
Windows komut isteminizde, aşağıdaki komutu kullanarak Node.js GitHub deposu için Azure IoT SDK'sını kopyalayın:
git clone https://github.com/Azure/azure-iot-sdk-node.git
Windows komut isteminizde aşağıdaki komutu kullanarak Python GitHub deposu için Azure IoT Cihaz SDK'sını kopyalayın:
git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
Not
Bu öğreticide kullanılan örnekler azure-iot-sdk-python deposunun v2 dalında yer alır. Python SDK'sının V3'leri beta sürümünde kullanılabilir.
Windows komut isteminizde aşağıdaki komutu kullanarak Java GitHub deposu için Azure IoT Örnekleri'ni kopyalayın:
git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
Kök
azure-iot-sdk-java
dizine gidin ve gerekli tüm paketleri indirmek için projeyi oluşturun.cd azure-iot-sdk-java mvn install -DskipTests=true
Otomatik olarak imzalanan X.509 sertifikası oluşturma
Bu bölümde, otomatik olarak imzalanan bir X.509 sertifikası ve özel anahtar oluşturmak için OpenSSL kullanacaksınız. Bu sertifika sağlama hizmeti örneğine yüklenir ve hizmet tarafından doğrulanır.
Dikkat
Yalnızca geliştirme testi için bu hızlı başlangıçta OpenSSL ile oluşturulan sertifikaları kullanın. Bu sertifikaları üretim ortamında kullanmayın. Bu sertifikaların süresi 30 gün sonra dolar ve 1234 gibi sabit kodlanmış parolalar içerebilir. Üretimde kullanıma uygun sertifikalar alma hakkında bilgi edinmek için Azure IoT Hub belgelerinde X.509 CA sertifikası alma bölümüne bakın.
Bu bölümdeki adımları Git Bash isteminizde gerçekleştirin.
Git Bash isteminizde, sertifikalarınızı oluşturmak istediğiniz dizine gidin.
Şu komutu çalıştırın:
winpty openssl req -outform PEM -x509 -sha256 -newkey rsa:4096 -keyout device-key.pem -out device-cert.pem -days 30 -extensions usr_cert -addext extendedKeyUsage=clientAuth -subj "//CN=my-x509-device"
Önemli
Konu adı (
//CN=my-x509-device
) için verilen ek eğik çizgi yalnızca Windows platformlarında Git ile dizeden kaçmak için gereklidir.PEM geçiş tümceciği girin: sorulduğunda, geçiş tümceciği
1234
kullanın.Doğrulama - PEM geçiş tümceciği girin: sorulduğunda, geçiş tümceciği
1234
yeniden kullanın.Artık komutu çalıştırdığınız
openssl
dizinde bir ortak anahtar sertifika dosyası (device-cert.pem) ve özel anahtar dosyası (device-key.pem) oluşturulmalıdır.Sertifika dosyasının konu ortak adı (CN) olarak ayarlanmıştır
my-x509-device
. X.509 tabanlı kayıtlar için Kayıt Kimliği ortak ada ayarlanır. Kayıt kimliği, alfasayısal karakterlerden oluşan büyük/küçük harfe duyarlı olmayan ve özel karakterler içeren bir dizedir:'-'
,'.'
,'_'
,':'
. Son karakter alfasayısal veya tire ('-'
) olmalıdır. Ortak ad bu biçime uymalıdır. DPS, 128 karakter uzunluğunda kayıt kimliklerini destekler; ancak, X.509 sertifikasındaki konu ortak adının uzunluğu üst sınırı 64 karakterdir. Bu nedenle, X.509 sertifikaları kullanılırken kayıt kimliği 64 karakterle sınırlıdır.Sertifika dosyası Base 64 kodlanmış. Sertifika dosyasının konu ortak adını (CN) ve diğer özelliklerini görüntülemek için aşağıdaki komutu girin:
Certificate: Data: Version: 3 (0x2) Serial Number: 77:3e:1d:e4:7e:c8:40:14:08:c6:09:75:50:9c:1a:35:6e:19:52:e2 Signature Algorithm: sha256WithRSAEncryption Issuer: CN = my-x509-device Validity Not Before: May 5 21:41:42 2022 GMT Not After : Jun 4 21:41:42 2022 GMT Subject: CN = my-x509-device Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public-Key: (4096 bit) Modulus: 00:d2:94:37:d6:1b:f7:43:b4:21:c6:08:1a:d6:d7: e6:40:44:4e:4d:24:41:6c:3e:8c:b2:2c:b0:23:29: ... 23:6e:58:76:45:18:03:dc:2e:9d:3f:ac:a3:5c:1f: 9f:66:b0:05:d5:1c:fe:69:de:a9:09:13:28:c6:85: 0e:cd:53 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: CA:FALSE Netscape Comment: OpenSSL Generated Certificate X509v3 Subject Key Identifier: 63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Authority Key Identifier: keyid:63:C0:B5:93:BF:29:F8:57:F8:F9:26:44:70:6F:9B:A4:C7:E3:75:18 X509v3 Extended Key Usage: TLS Web Client Authentication Signature Algorithm: sha256WithRSAEncryption 82:8a:98:f8:47:00:85:be:21:15:64:b9:22:b0:13:cc:9e:9a: ed:f5:93:b9:4b:57:0f:79:85:9d:89:47:69:95:65:5e:b3:b1: ... cc:b2:20:9a:b7:f2:5e:6b:81:a1:04:93:e9:2b:92:62:e0:1c: ac:d2:49:b9:36:d2:b0:21
Örnek kod, şifrelenmemiş bir özel anahtar gerektirir. Şifrelenmemiş bir özel anahtar oluşturmak için aşağıdaki komutu çalıştırın:
device-key.pem: için geçiş tümceciği girmeniz istendiğinde, daha önce
1234
yaptığınız geçiş tümceciğiyle aynı parola tümceciği kullanın.
Git Bash istemini açık tutun. Bu hızlı başlangıçta ihtiyacınız olacak.
C# örnek kodu, parola korumalı PKCS#12 biçimli bir dosyada (certificate.pfx
) depolanan X.509 sertifikalarını kullanacak şekilde ayarlanır. Bu hızlı başlangıcın ilerleyen bölümlerinde tek bir kayıt girdisi oluşturmak için oluşturduğunuz PEM biçimli ortak anahtar sertifika dosyasına (device-cert.pem
) yine de ihtiyacınız vardır.
Örnek tarafından beklenen PKCS12 biçimlendirilmiş dosyasını oluşturmak için aşağıdaki komutu girin:
device-key.pem: için geçiş tümceciği girmeniz istendiğinde, daha önce
1234
yaptığınız geçiş tümceciğiyle aynı parola tümceciği kullanın.Dışarı Aktarma Parolası: girmeniz istendiğinde, parolasını
1234
kullanın.Doğrulama - Parolayı Dışarı Aktar: girin sorulduğunda parolayı
1234
yeniden kullanın.Artık komutu çalıştırdığınız
openssl
dizinde PKCS12 biçimli bir sertifika dosyası (certificate.pfx) oluşturulmalıdır.PKCS12 biçimlendirilmiş sertifika dosyasını X.509 cihaz sağlama örneği için proje dizinine kopyalayın. Verilen yol, örnek depoyu indirdiğiniz konuma göredir.
cp certificate.pfx ./azure-iot-sdk-csharp/provisioning/device/samples/"Getting Started"/X509Sample
Bu hızlı başlangıcın geri kalanında Git Bash istemine ihtiyacınız yoktur. Ancak, sonraki adımlarda sorun yaşıyorsanız sertifikanızı denetlemek için sertifikanızı açık tutmak isteyebilirsiniz.
Örnek kod, şifrelenmemiş bir özel anahtar gerektirir. Şifrelenmemiş bir özel anahtar oluşturmak için aşağıdaki komutu çalıştırın:
device-key.pem: için geçiş tümceciği girmeniz istendiğinde, daha önce
1234
yaptığınız geçiş tümceciğiyle aynı parola tümceciği kullanın.X.509 cihaz sağlama örneği için cihaz sertifikasını ve şifrelenmemiş özel anahtarı proje dizinine kopyalayın. Verilen yol, SDK'yi indirdiğiniz konuma göredir.
cp device-cert.pem ./azure-iot-sdk-node/provisioning/device/samples cp unencrypted-device-key.pem ./azure-iot-sdk-node/provisioning/device/samples
Bu hızlı başlangıcın geri kalanında Git Bash istemine ihtiyacınız yoktur. Ancak, sonraki adımlarda sorun yaşıyorsanız sertifikanızı denetlemek için sertifikanızı açık tutmak isteyebilirsiniz.
X.509 cihaz sağlama örneği için cihaz sertifikasını ve özel anahtarı proje dizinine kopyalayın. Verilen yol, SDK'yi indirdiğiniz konuma göredir.
cp device-cert.pem ./azure-iot-sdk-python/samples/async-hub-scenarios cp device-key.pem ./azure-iot-sdk-python/samples/async-hub-scenarios
Bu hızlı başlangıcın geri kalanında Git Bash istemine ihtiyacınız yoktur. Ancak, sonraki adımlarda sorun yaşıyorsanız sertifikanızı denetlemek için sertifikanızı açık tutmak isteyebilirsiniz.
Java örnek kodu şifrelenmemiş bir özel anahtar gerektirir. Şifrelenmemiş bir özel anahtar oluşturmak için aşağıdaki komutu çalıştırın:
device-key.pem: için geçiş tümceciği girmeniz istendiğinde, daha önce
1234
yaptığınız geçiş tümceciğiyle aynı parola tümceciği kullanın.
Git Bash istemini açık tutun. Bu hızlı başlangıçta ihtiyacınız olacak.
Cihaz kaydı oluşturma
Azure IoT Cihaz Sağlama Hizmeti iki tür kaydı destekler:
- Kayıt grupları: Birden fazla ilgili cihazı kaydetmek için kullanılır.
- Bireysel kayıtlar: Tek bir cihazı kaydetmek için kullanılır.
Bu makalede, ioT hub'ı ile sağlanacak tek bir cihaz için bireysel kayıt gösterilmektedir.
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 X.509 istemci sertifikalarını seçin. X.509 sertifika ayarları Bu kaydın cihazını doğrulamak için kullanılacak bir veya iki sertifikayı karşıya yükleyin. 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 sağlama kodunu hazırlama ve çalıştırma
Bu bölümde, cihazın önyükleme sırasını Cihaz Sağlama Hizmeti örneğine göndermek için örnek kodu güncelleştirin. Bu önyükleme sırası, cihazın tanınmasına ve DPS örneğine bağlı bir IoT hub'ına atanmalarına neden olur.
Bu bölümde Git Bash isteminizi ve Visual Studio IDE'yi kullanacaksınız.
Sağlama cihaz kodunu yapılandırma
Bu bölümde, örnek kodu Cihaz Sağlama Hizmeti örnek bilgilerinizle güncelleştirin.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
Visual Studio'yu başlatın ve azure-iot-sdk-c git deposunun kökünde oluşturduğunuz dizinde oluşturulan
cmake
yeni çözüm dosyasını açın. Çözüm dosyası olarak adlandırılırazure_iot_sdks.sln
.Visual Studio için Çözüm Gezgini Provision_Samples prov_dev_client_sample Kaynak Dosyaları'na > gidin ve prov_dev_client_sample.c dosyasını açın.>
Sabiti
id_scope
bulun ve değerini 2. adımda kopyaladığınız Kimlik Kapsamı değerinizle değiştirin.static const char* id_scope = "0ne00000A0A";
Aynı dosyada
main()
işlevinin tanımını bulun. değişkeninin olarakSECURE_DEVICE_TYPE_X509
ayarlandığındanhsm_type
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;
Değişikliklerinizi kaydedin.
prov_dev_client_sample projesine sağ tıklayın ve Başlangıç Projesi Olarak Ayarla'yı seçin.
Özel HSM saplama kodunu yapılandırma
Gerçek güvenli donanım tabanlı depolama alanıyla etkileşim kurmanın özellikleri, donanıma bağlı olarak değişir. Sonuç olarak, bu hızlı başlangıçta simülasyon cihazı tarafından kullanılan sertifika ve özel anahtar, özel Donanım Güvenlik Modülü (HSM) saptama kodunda sabit olarak kodlanır.
Özel HSM saplama kodunu, kimliğiyle my-x509-device
cihazın kimliğinin benzetimini yapmak üzere güncelleştirmek için:
Visual Studio için Çözüm Gezgini'nde Provision_Samples custom_hsm_example Kaynak Dosyaları'na gidin ve custom_hsm_example.c dosyasını açın.> >
Dize sabitinin
COMMON_NAME
dize değerini, cihaz sertifikasınımy-x509-device
oluştururken kullandığınız ortak adı kullanarak güncelleştirin.static const char* const COMMON_NAME = "my-x509-device";
Sabit dizenin
CERTIFICATE
dize değerini, daha önce oluşturduğunuz device-cert.pem cihaz sertifikasını kullanarak güncelleştirin.Örnekteki sertifika metninin söz dizimi, Visual Studio tarafından fazladan boşluk veya ayrıştırma yapılmadan aşağıdaki desene uygun olmalıdır.
static const char* const CERTIFICATE = "-----BEGIN CERTIFICATE-----\n" "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" "-----END CERTIFICATE-----";
Bu dize değerini el ile güncelleştirmek hataya eğilimli olabilir. Doğru söz dizimini oluşturmak için aşağıdaki komutu kopyalayıp Git Bash isteminize yapıştırabilir ve ENTER tuşuna basabilirsiniz. Bu komut, dize sabit değeri için söz dizimini
CERTIFICATE
oluşturur ve çıkışa yazar.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' device-cert.pem
Sabit değer için çıkış sertifikası metnini kopyalayıp yapıştırın.
Sabitin dize değerini
PRIVATE_KEY
cihaz sertifikanızın şifrelenmemiş özel anahtarı olan unencrypted-device-key.pem ile güncelleştirin.Özel anahtar metninin söz dizimi, Visual Studio tarafından fazladan boşluk veya ayrıştırma yapılmadan aşağıdaki desene uygun olmalıdır.
static const char* const PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----\n" "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" "-----END RSA PRIVATE KEY-----";
Bu dize değerini el ile güncelleştirmek hataya eğilimli olabilir. Doğru söz dizimini oluşturmak için aşağıdaki komutu kopyalayıp Git Bash isteminize yapıştırabilir ve ENTER tuşuna basabilirsiniz. Bu komut, dize sabit değeri için söz dizimini
PRIVATE_KEY
oluşturur ve çıkışa yazar.sed -e 's/^/"/;$ !s/$/""\\n"/;$ s/$/"/' unencrypted-device-key.pem
Sabit değer için çıkış özel anahtar metnini kopyalayıp yapıştırın.
Değişikliklerinizi kaydedin.
custom_hsm_-_example projesine sağ tıklayın ve Oluştur'a tıklayın.
Önemli
Sonraki bölümde çözümün geri kalanını derlemeden önce custom_hsm_example projesini oluşturmanız gerekir.
Örneği çalıştırma
Çö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 oluşturmanız istenirse, çalıştırmadan önce projeyi yeniden derlemek için Evet'i seçin.
Aşağıdaki çıkış, simülasyon cihazının
my-x509-device
başarıyla önyüklenmesi ve sağlama hizmetine bağlanması örneğidir. Cihaz bir IoT hub'ına atanır ve kaydedilir:Provisioning API Version: 1.8.0 Registering Device Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING Registration Information received from service: contoso-iot-hub-2.azure-devices.net, deviceId: my-x509-device Press enter key to exit:
Bu bölümde Windows komut isteminizi kullanacaksınız.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
Windows komut isteminizde X509Sample dizinine geçin. Bu dizin, bilgisayarınızdaki örnekleri kopyaladığınız dizinden .\azure-iot-sdk-csharp\provisioning\device\samples\getting started\X509Sample dizininde bulunur.
X.509 cihaz sağlama örneğini derlemek ve çalıştırmak için aşağıdaki komutu girin (değeri önceki bölümde kopyaladığınız Kimlik Kapsamı ile değiştirin
<IDScope>
. Sertifika dosyası varsayılan olarak ./certificate.pfx olarak belirlenmiştir ve .pfx parolasını ister.dotnet run -- -s <IDScope>
Sertifikayı ve parolayı parametre olarak geçirmek istiyorsanız aşağıdaki biçimi kullanabilirsiniz.
Not
TransportType (-t) ve GlobalDeviceEndpoint 'i (-g) değiştirmek için uygulama çalıştırılırken ek parametreler geçirilebilir.
dotnet run -- -s 0ne00000A0A -c certificate.pfx -p 1234
Cihaz DPS'ye bağlanır ve bir IoT hub'ına atanır. Ardından cihaz IoT hub'ına bir telemetri iletisi gönderir.
Loading the certificate... Enter the PFX password for certificate.pfx: **** Found certificate: A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device; PrivateKey: True Using certificate A33DB11B8883DEE5B1690ACFEAAB69E8E928080B CN=my-x509-device Initializing the device provisioning client... Initialized for registration Id my-x509-device. Registering with the device provisioning service... Registration status: Assigned. Device my-x509-device registered to MyExampleHub.azure-devices.net. Creating X509 authentication for IoT Hub... Testing the provisioned device with IoT Hub... Sending a telemetry message... Finished.
Bu bölümde Windows komut isteminizi kullanacaksınız.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı değerini kopyalayın.
Windows komut isteminizde örnek dizine gidin ve örneğin ihtiyaç duyduğu paketleri yükleyin. Gösterilen yol, SDK'yı kopyaladığınız konuma göredir.
cd .\azure-iot-sdk-node\provisioning\device\samples npm install
Örnek, DPS kullanarak bir IoT cihazının kimliğini doğrulamak ve sağlamak için beş ortam değişkeni kullanır. Bu ortam değişkenleri şunlardır:
Değişken adı Açıklama PROVISIONING_HOST
DPS örneğine bağlanmak için kullanılacak uç nokta. Bu hızlı başlangıç için genel uç nokta global.azure-devices-provisioning.net
olan kullanın.PROVISIONING_IDSCOPE
DPS örneğinizin Kimlik Kapsamı. PROVISIONING_REGISTRATION_ID
Cihazınızın kayıt kimliği. Cihaz sertifikasındaki konu ortak adıyla eşleşmelidir. CERTIFICATE_FILE
Cihaz sertifika dosyanızın yolu. KEY_FILE
Cihazınızın özel anahtar dosyasının yolu. Genel cihaz uç noktası ve kimlik kapsamı için ortam değişkenleri ekleyin. değerini 2. adımda kopyaladığınız değerle değiştirin
<id-scope>
.set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<id-scope>
Cihaz kayıt kimliği için ortam değişkenini ayarlayın. IoT cihazının kayıt kimliği, cihaz sertifikasındaki konu ortak adıyla eşleşmelidir. Otomatik olarak imzalanan bir test sertifikası oluşturmak için bu hızlı başlangıçtaki adımları izlediyseniz,
my-x509-device
cihazın hem konu adı hem de kayıt kimliğidir.set PROVISIONING_REGISTRATION_ID=my-x509-device
Cihaz sertifikası ve (şifrelenmemiş) cihaz özel anahtar dosyaları için ortam değişkenlerini ayarlayın.
set CERTIFICATE_FILE=.\device-cert.pem set KEY_FILE=.\unencrypted-device-key.pem
Örneği çalıştırın ve cihazın başarıyla sağlandığını doğrulayın.
node register_x509.js
Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir:
registration succeeded assigned hub=contoso-hub-2.azure-devices.net deviceId=my-x509-device Client connected send status: MessageEnqueued
Bu bölümde Windows komut isteminizi kullanacaksınız.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı ve Genel cihaz uç noktası değerlerini kopyalayın.
Windows komut isteminizde provision_x509.py örneğinin dizinine gidin. Gösterilen yol, SDK'yı kopyaladığınız konuma göredir.
cd ./azure-iot-sdk-python/samples/async-hub-scenarios
Bu örnek, DPS kullanarak bir IoT cihazının kimliğini doğrulamak ve sağlamak için altı ortam değişkeni kullanır. Bu ortam değişkenleri şunlardır:
Değişken adı Açıklama PROVISIONING_HOST
DPS örneğine bağlanmak için kullanılan genel uç nokta. PROVISIONING_IDSCOPE
DPS örneğinizin Kimlik Kapsamı. DPS_X509_REGISTRATION_ID
Cihazınızın kayıt kimliği. Cihaz sertifikasındaki konu adıyla da eşleşmesi gerekir. X509_CERT_FILE
Cihaz sertifika dosyanızın yolu. X509_KEY_FILE
Cihaz sertifikanızın özel anahtar dosyasının yolu. PASS_PHRASE
Sertifikayı ve özel anahtar dosyasını ( 1234
) şifrelemek için kullandığınız geçiş tümceciği.Genel cihaz uç noktası ve Kimlik Kapsamı için ortam değişkenlerini ekleyin.
set PROVISIONING_HOST=global.azure-devices-provisioning.net set PROVISIONING_IDSCOPE=<ID scope for your DPS resource>
Kayıt kimliği için ortam değişkenini ayarlayın. IoT cihazının kayıt kimliği, cihaz sertifikasındaki konu adıyla eşleşmelidir. Otomatik olarak imzalanan bir test sertifikası oluşturmak için bu hızlı başlangıçtaki adımları izlediyseniz,
my-x509-device
cihazın hem konu adı hem de kayıt kimliğidir.set DPS_X509_REGISTRATION_ID=my-x509-device
Sertifika dosyası, özel anahtar dosyası ve geçiş tümceciği için ortam değişkenlerini ayarlayın.
set X509_CERT_FILE=./device-cert.pem set X509_KEY_FILE=./device-key.pem set PASS_PHRASE=1234
provision_x509.py kodunu gözden geçirin. Python sürüm 3.7 veya üzerini kullanmıyorsanız, değişikliklerinizi değiştirmek
asyncio.run(main())
ve kaydetmek için burada belirtilen kod değişikliğini yapın.Örnek uygulamayı çalıştırın. Örnek, cihazı bir IoT hub'ına sağlayan DPS'ye bağlanır. Cihaz sağlandıktan sonra örnek, IoT hub'ına bazı test iletileri gönderir.
$ python azure-iot-sdk-python/samples/async-hub-scenarios/provision_x509.py RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2. Setting timer. The complete registration result is my-x509-device TestHub12345.azure-devices.net initialAssignment null Will send telemetry from the provisioned device sending message #4 sending message #7 sending message #2 sending message #8 sending message #5 sending message #9 sending message #1 sending message #6 sending message #10 sending message #3 done sending message #4 done sending message #7 done sending message #2 done sending message #8 done sending message #5 done sending message #9 done sending message #1 done sending message #6 done sending message #10 done sending message #3
Bu bölümde hem Windows komut isteminizi hem de Git Bash isteminizi kullanacaksınız.
Azure portalında, Cihaz Sağlama Hizmetiniz için Genel Bakış sekmesini seçin.
Kimlik Kapsamı ve Genel cihaz uç noktası değerlerini kopyalayın.
Windows komut isteminizde örnek proje klasörüne gidin. Gösterilen yol, SDK'yı kopyaladığınız konuma göredir
cd .\azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-X509-sample
Sağlama hizmetini ve X.509 kimlik bilgilerini örnek koda girin. Bu bilgiler sağlama sırasında, cihaz kaydından önce simülasyon cihazının kanıtlaması için kullanılır.
Dosyayı
.\src\main\java\samples\com\microsoft\azure\sdk\iot\ProvisioningX509Sample.java
sık kullandığınız düzenleyicide açın.Aşağıdaki değerleri daha önce kopyaladığınız Kimlik Kapsamı ve Sağlama Hizmeti Genel Uç Noktası ile güncelleştirin.
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;
Sabit dizenin
leafPublicPem
değerini device-cert.pem sertifikanızın değeriyle güncelleştirin.Sertifika metninin söz dizimi, fazladan boşluk veya karakter içermeyen aşağıdaki desene uygun olmalıdır.
private static final String leafPublicPem = "-----BEGIN CERTIFICATE-----\n" + "MIIFOjCCAyKgAwIBAgIJAPzMa6s7mj7+MA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV\n" + ... "MDMwWhcNMjAxMTIyMjEzMDMwWjAqMSgwJgYDVQQDDB9BenVyZSBJb1QgSHViIENB\n" + "-----END CERTIFICATE-----";
Bu dize değerini el ile güncelleştirmek hataya eğilimli olabilir. Doğru söz dizimini oluşturmak için aşağıdaki komutu kopyalayıp Git Bash isteminize yapıştırabilir ve ENTER tuşuna basabilirsiniz. Bu komut, dize sabit değeri için söz dizimini
leafPublicPem
oluşturur ve çıkışa yazar.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' device-cert.pem
Sabit değer için çıkış sertifikası metnini kopyalayıp yapıştırın.
Sabitin dize değerini
leafPrivateKey
cihaz sertifikanızın şifrelenmemiş özel anahtarı olan unencrypted-device-key.pem ile güncelleştirin.Özel anahtar metninin söz dizimi, fazladan boşluk veya karakter içermeyen aşağıdaki desene uygun olmalıdır.
private static final String leafPrivateKey = "-----BEGIN PRIVATE KEY-----\n" + "MIIJJwIBAAKCAgEAtjvKQjIhp0EE1PoADL1rfF/W6v4vlAzOSifKSQsaPeebqg8U\n" + ... "X7fi9OZ26QpnkS5QjjPTYI/wwn0J9YAwNfKSlNeXTJDfJ+KpjXBcvaLxeBQbQhij\n" + "-----END PRIVATE KEY-----";
Bu dize değerini el ile güncelleştirmek hataya eğilimli olabilir. Doğru söz dizimini oluşturmak için aşağıdaki komutu kopyalayıp Git Bash isteminize yapıştırabilir ve ENTER tuşuna basabilirsiniz. Bu komut, dize sabit değeri için söz dizimini
leafPrivateKey
oluşturur ve çıkışa yazar.sed 's/^/"/;$ !s/$/\\n" +/;$ s/$/"/' unencrypted-device-key.pem
Sabit değer için çıkış özel anahtar metnini kopyalayıp yapıştırın.
Değişikliklerinizi kaydedin.
Örneği derleyin ve ardından klasörüne
target
gidin.mvn clean install cd target
Derleme, klasördeki
target
.jar dosyasını şu dosya biçiminde verir:provisioning-x509-sample-{version}-with-deps.jar
; örneğin:provisioning-x509-sample-1.8.1-with-deps.jar
. .jar dosyasını yürütür. Aşağıdaki komutta sürümü değiştirmeniz gerekebilir.java -jar ./provisioning-x509-sample-1.8.1-with-deps.jar
Örnek, cihazı bir IoT hub'ına sağlayan DPS'ye bağlanır. Cihaz sağlandıktan sonra örnek, IoT hub'ına bazı test iletileri gönderir.
Starting... Beginning setup. WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance. 2022-05-11 09:42:05,025 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Initialized a ProvisioningDeviceClient instance using SDK version 2.0.0 2022-05-11 09:42:05,027 DEBUG (main) [com.microsoft.azure.sdk.iot.provisioning.device.ProvisioningDeviceClient] - Starting provisioning thread... Waiting for Provisioning Service to register 2022-05-11 09:42:05,030 INFO (global.azure-devices-provisioning.net-6255a8ba-CxnPendingConnectionId-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Opening the connection to device provisioning service... 2022-05-11 09:42:05,252 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Connection to device provisioning service opened successfully, sending initial device registration message 2022-05-11 09:42:05,286 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-RegisterTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.RegisterTask] - Authenticating with device provisioning service using x509 certificates 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Waiting for device provisioning service to provision this device... 2022-05-11 09:42:06,083 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Current provisioning status: ASSIGNING Waiting for Provisioning Service to register 2022-05-11 09:42:15,685 INFO (global.azure-devices-provisioning.net-6255a8ba-Cxn6255a8ba-azure-iot-sdk-ProvisioningTask) [com.microsoft.azure.sdk.iot.provisioning.device.internal.task.ProvisioningTask] - Device provisioning service assigned the device successfully IotHUb Uri : MyExampleHub.azure-devices.net Device ID : java-device-01 2022-05-11 09:42:25,057 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,080 INFO (main) [com.microsoft.azure.sdk.iot.device.transport.ExponentialBackoffWithJitter] - NOTE: A new instance of ExponentialBackoffWithJitter has been created with the following properties. Retry Count: 2147483647, Min Backoff Interval: 100, Max Backoff Interval: 10000, Max Time Between Retries: 100, Fast Retry Enabled: true 2022-05-11 09:42:25,087 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Initialized a DeviceClient instance using SDK version 2.0.3 2022-05-11 09:42:25,129 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - Opening MQTT connection... 2022-05-11 09:42:25,150 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT CONNECT packet... 2022-05-11 09:42:25,982 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT CONNECT packet was acknowledged 2022-05-11 09:42:25,983 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sending MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.Mqtt] - Sent MQTT SUBSCRIBE packet for topic devices/java-device-01/messages/devicebound/# was acknowledged 2022-05-11 09:42:26,068 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.mqtt.MqttIotHubConnection] - MQTT connection opened successfully 2022-05-11 09:42:26,070 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - The connection to the IoT Hub has been established 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Updating transport status to new status CONNECTED with reason CONNECTION_OK 2022-05-11 09:42:26,071 DEBUG (main) [com.microsoft.azure.sdk.iot.device.DeviceIO] - Starting worker threads 2022-05-11 09:42:26,073 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking connection status callbacks with new status details 2022-05-11 09:42:26,074 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Client connection opened successfully 2022-05-11 09:42:26,075 INFO (main) [com.microsoft.azure.sdk.iot.device.DeviceClient] - Device client opened successfully Sending message from device to IoT Hub... 2022-05-11 09:42:26,077 DEBUG (main) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Message was queued to be sent later ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) Press any key to exit... 2022-05-11 09:42:26,079 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Sending message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,422 DEBUG (MQTT Call: java-device-01) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - IotHub message was acknowledged. Checking if there is record of sending this message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) 2022-05-11 09:42:26,425 DEBUG (MyExampleHub.azure-devices.net-java-device-01-ee6c362d-Cxn7a1fb819-e46d-4658-9b03-ca50c88c0440-azure-iot-sdk-IotHubSendTask) [com.microsoft.azure.sdk.iot.device.transport.IotHubTransport] - Invoking the callback function for sent message, IoT Hub responded to message ( Message details: Correlation Id [aaaa0000-bb11-2222-33cc-444444dddddd] Message Id [aaaa0000-bb11-2222-33cc-444444dddddd] ) with status OK Message sent!
Cihaz sağlama kaydınızı onaylayın
Cihazınızın hangi IoT hub'ına sağlandığını görmek için daha önce oluşturduğunuz bireysel kaydın kayıt ayrıntılarını inceleyin:
Azure portalında Cihaz Sağlama Hizmetinize gidin.
Ayarlar menüsünde Kayıtları yönet'i seçin.
Bireysel Kayıtlar'ı seçin. Daha önce oluşturduğunuz my-x509-device X.509 kayıt girişi listede görünmelidir.
Kayıt girişini seçin. Cihazınızın atandığı IoT hub'ı ve cihaz kimliği Kayıt durumu altında görünür.
IoT hub'ınızdaki cihazı doğrulamak için:
Azure portalında, cihazınızın atandığı IoT hub'ına gidin.
Cihaz yönetimi menüsünde Cihazlar'ı seçin.
Cihazınız başarıyla sağlandıysa cihaz kimliği (my-x509-device) listede Durum etkin olarak ayarlı olarak görünmelidir. Cihazınızı görmüyorsanız Yenile'yi seçin.
Önemli
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'daki 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.