Microsoft Entra Id kullanarak IoT Hub'a erişimi denetleme
Cihaz kimliği oluşturma ve doğrudan yöntem çağırma gibi Azure IoT Hub hizmet API'lerine yönelik isteklerin kimliğini doğrulamak için Microsoft Entra Id kullanabilirsiniz. Aynı hizmet API'lerini yetkilendirmek için Azure rol tabanlı erişim denetimini (Azure RBAC) de kullanabilirsiniz. Bu teknolojileri birlikte kullanarak, Bir Microsoft Entra güvenlik sorumlusuna IoT Hub hizmet API'lerine erişim izinleri verilmektedir. Bu güvenlik sorumlusu bir kullanıcı, grup veya uygulama hizmet sorumlusu olabilir.
Microsoft Entra Id kullanarak erişimin kimliğini doğrulamak ve Azure RBAC kullanarak izinleri denetlemek, güvenlik belirteçleri üzerinde gelişmiş güvenlik ve kullanım kolaylığı sağlar. Güvenlik belirteçlerindeki olası güvenlik sorunlarını en aza indirmek için mümkün olduğunda Microsoft Entra kimlik doğrulamasını zorunlu kılmanızı öneririz.
Not
IoT Hub cihaz API'leri (cihazdan buluta iletiler ve bildirilen özellikleri güncelleştirme gibi) için Microsoft Entra Kimliği ile kimlik doğrulaması desteklenmez. IoT Hub'da cihazların kimliğini doğrulamak için simetrik anahtarları veya X.509'ı kullanın.
Kimlik doğrulaması ve yetkilendirme
Kimlik doğrulaması , dediğiniz kişi olduğunuzu kanıtlama işlemidir. Kimlik doğrulaması, ioT Hub'a bir kullanıcının veya cihazın kimliğini doğrular. Bazen AuthN olarak kısaltılır.
Yetkilendirme , IoT Hub'da kimliği doğrulanmış bir kullanıcı veya cihaz için izinleri onaylama işlemidir. Erişim iznine sahip olduğunuz kaynakları ve komutları ve bu kaynak ve komutlarla neler yapabileceğinizi belirtir. Yetkilendirme bazen AuthZ olarak kısaltılır.
Microsoft Entra güvenlik sorumlusu bir IoT Hub hizmet API'sine erişim istediğinde, önce sorumlunun kimliği doğrulanır. Kimlik doğrulaması için isteğin çalışma zamanında bir OAuth 2.0 erişim belirteci içermesi gerekir. Belirteci istemek için kaynak adı şeklindedir https://iothubs.azure.net
. Uygulama Azure VM, Azure İşlevleri uygulaması veya Azure Uygulaması Service uygulaması gibi bir Azure kaynağında çalışıyorsa, yönetilen kimlik olarak temsil edilebilir.
Microsoft Entra sorumlusunun kimliği doğrulandıktan sonra bir sonraki adım yetkilendirmedir. Bu adımda IoT Hub, sorumlunun hangi izinlere sahip olduğunu belirlemek için Microsoft Entra rol atama hizmetini kullanır. Sorumlunun izinleri istenen kaynak veya API ile eşleşiyorsa, IoT Hub isteği yetkilendirir. Bu nedenle bu adım, güvenlik sorumlusuna bir veya daha fazla Azure rolünün atanması gerektirir. IoT Hub, ortak izin gruplarına sahip bazı yerleşik roller sağlar.
Azure RBAC rol atamasını kullanarak IoT Hub erişimini yönetme
Microsoft Entra Id ve RBAC ile IoT Hub, API'yi isteyen sorumlunun yetkilendirme için uygun izin düzeyine sahip olmasını gerektirir. Sorumluya izin vermek için ona bir rol ataması verin.
- Sorumlu bir kullanıcı, grup veya uygulama hizmet sorumlusuysa Azure portalını kullanarak Azure rolleri atama başlığındaki yönergeleri izleyin.
- Sorumlu bir yönetilen kimlikse, Kaynağa yönetilen kimlik erişimi atama başlığındaki yönergeleri izleyin.
En az ayrıcalık sağlamak için her zaman uygun rolü mümkün olan en düşük kaynak kapsamına (muhtemelen IoT Hub kapsamı) atayın.
IoT Hub, Microsoft Entra Id ve RBAC kullanarak IoT Hub hizmet API'lerine erişim yetkisi vermek için aşağıdaki Azure yerleşik rollerini sağlar:
Rol | Açıklama |
---|---|
IoT Hub Veri Katılımcısı | IoT Hub veri düzlemi işlemlerine tam erişim sağlar. |
IoT Hub Veri Okuyucusu | IoT Hub veri düzlemi özelliklerine tam okuma erişimi sağlar. |
IoT Hub Kayıt Defteri Katılımcısı | IoT Hub cihaz kayıt defterine tam erişime izin verir. |
IoT Hub İkiz Katılımcısı | Tüm IoT Hub cihazı ve modülü ikizlerine okuma ve yazma erişimi sağlar. |
Ayrıca, ihtiyacınız olan izinleri birleştirerek IoT Hub ile kullanılacak özel roller tanımlayabilirsiniz. Daha fazla bilgi için bkz . Azure rol tabanlı erişim denetimi için özel roller oluşturma.
Kaynak kapsamı
Azure RBAC rolünü bir güvenlik sorumlusuna atamadan önce, güvenlik sorumlusunun sahip olması gereken erişim kapsamını belirleyin. Yalnızca mümkün olan en dar kapsamı vermek her zaman en iyisidir. Daha geniş bir kapsamda tanımlanan Azure RBAC rolleri, altındaki kaynaklar tarafından devralınır.
Bu liste, en dar kapsamdan başlayarak IoT Hub'a erişimi kapsam olarak kullanabileceğiniz düzeyleri açıklar:
- IoT hub'ı. Bu kapsamda, ioT hub'ına bir rol ataması uygulanır. Tek bir IoT hub'ından daha küçük bir kapsam yoktur. Tek tek cihaz kimliği gibi daha küçük kapsamlarda rol ataması desteklenmez.
- Kaynak grubu. Bu kapsamda, rol ataması kaynak grubundaki tüm IoT hub'larına uygulanır.
- Abonelik. Bu kapsamda, rol ataması abonelikteki tüm kaynak gruplarındaki tüm IoT hub'larına uygulanır.
- Bir yönetim grubu. Bu kapsamda, bir rol ataması yönetim grubundaki tüm aboneliklerdeki tüm kaynak gruplarındaki tüm IoT hub'larına uygulanır.
IoT Hub hizmeti API'leri için izinler
Aşağıdaki tabloda IoT Hub hizmet API'si işlemleri için kullanılabilen izinler açıklanmaktadır. bir istemcinin belirli bir işlemi çağırmasını sağlamak için, istemcinin atanan RBAC rolünün işlem için yeterli izinler sunduğundan emin olun.
RBAC eylemi | Açıklama |
---|---|
Microsoft.Devices/IotHubs/devices/read |
Herhangi bir cihaz veya modül kimliğini okuyun. |
Microsoft.Devices/IotHubs/devices/write |
Herhangi bir cihaz veya modül kimliği oluşturun veya güncelleştirin. |
Microsoft.Devices/IotHubs/devices/delete |
Herhangi bir cihaz veya modül kimliğini silin. |
Microsoft.Devices/IotHubs/twins/read |
Herhangi bir cihazı veya modül ikizlerini okuyun. |
Microsoft.Devices/IotHubs/twins/write |
Herhangi bir cihaz veya modül ikizi yazın. |
Microsoft.Devices/IotHubs/jobs/read |
İşlerin listesini döndürür. |
Microsoft.Devices/IotHubs/jobs/write |
Herhangi bir işi oluşturun veya güncelleştirin. |
Microsoft.Devices/IotHubs/jobs/delete |
Herhangi bir işi silin. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action |
Herhangi bir cihaza buluttan cihaza ileti gönderin. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action |
Buluttan cihaza ileti geri bildirim bildirimi alma, tamamlama veya bırakma. |
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action |
Bir cihaz için bekleyen tüm komutları silin. |
Microsoft.Devices/IotHubs/directMethods/invoke/action |
Herhangi bir cihazda veya modülde doğrudan bir yöntem çağırabilirsiniz. |
Microsoft.Devices/IotHubs/fileUpload/notifications/action |
Dosya yükleme bildirimlerini alma, tamamlama veya bırakma. |
Microsoft.Devices/IotHubs/statistics/read |
Cihaz ve hizmet istatistiklerini okuyun. |
Microsoft.Devices/IotHubs/configurations/read |
Cihaz yönetimi yapılandırmalarını okuyun. |
Microsoft.Devices/IotHubs/configurations/write |
Cihaz yönetimi yapılandırmalarını oluşturun veya güncelleştirin. |
Microsoft.Devices/IotHubs/configurations/delete |
Tüm cihaz yönetimi yapılandırmasını silin. |
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action |
Yapılandırma içeriğini bir uç cihaza uygulayın. |
Microsoft.Devices/IotHubs/configurations/testQueries/action |
Yapılandırma için hedef koşulu ve özel ölçüm sorgularını doğrulayın. |
İpucu
- Toplu Kayıt Defteri Güncelleştirme işlemi hem hem de
Microsoft.Devices/IotHubs/devices/write
Microsoft.Devices/IotHubs/devices/delete
gerektirir. - İkiz Sorgu işlemi gerektirir
Microsoft.Devices/IotHubs/twins/read
. - Get Digital Twin gerektirir
Microsoft.Devices/IotHubs/twins/read
. Güncelleştirme Dijital İkizi gerektirirMicrosoft.Devices/IotHubs/twins/write
. - Hem Bileşen Çağır Komutu hem de Kök Düzeyi Çağırma Komutu gerektirir
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Not
Microsoft Entra Id kullanarak IoT Hub'dan veri almak için özel bir Event Hubs uç noktasına yönlendirme ayarlayın. Yerleşik Event Hubs uyumlu uç noktasına erişmek için daha önce olduğu gibi bağlantı dizesi (paylaşılan erişim anahtarı) yöntemini kullanın.
Microsoft Entra kimlik doğrulamayı zorunlu kılma
Varsayılan olarak, IoT Hub hem Microsoft Entra Kimliği hem de paylaşılan erişim ilkeleri ve güvenlik belirteçleri aracılığıyla hizmet API'si erişimini destekler. Güvenlik belirteçlerindeki olası güvenlik açıklarını en aza indirmek için, paylaşılan erişim ilkeleriyle erişimi devre dışı bırakabilirsiniz.
Uyarı
Paylaşılan erişim ilkelerini kullanan bağlantıları reddederek, bu yöntemi kullanarak bağlanan tüm kullanıcılar ve hizmetler erişimi hemen kaybeder. Özellikle, Cihaz Sağlama Hizmeti (DPS) yalnızca paylaşılan erişim ilkelerini kullanarak IoT hub'larını bağlamayı desteklediğinden, tüm cihaz sağlama akışları "yetkisiz" hatayla başarısız olur. Dikkatli ilerleyin ve erişimi Microsoft Entra rol tabanlı erişimle değiştirmeyi planlayın.
Cihaz Sağlama Hizmeti'ni kullanıyorsanız devam etmeyin.
Hizmet istemcilerinizin ve kullanıcılarınızın IoT hub'ınıza yeterli erişime sahip olduğundan emin olun. En az ayrıcalık ilkesini izleyin.
Sol bölmede Paylaşılan erişim ilkeleri'ni seçin.
Paylaşılan erişim ilkelerini kullanarak bağlan'ın altında Reddet'i seçin ve uyarıyı gözden geçirin.
Kaydet'i seçin.
IoT Hub hizmet API'lerinize artık yalnızca Microsoft Entra Id ve RBAC aracılığıyla erişilebilir.
Azure portalından Microsoft Entra Id erişimi
Paylaşılan erişim ilkeleri veya Microsoft Entra izinleri ile Azure portalından IoT Hub'a erişim sağlayabilirsiniz.
Azure portalından IoT Hub'a erişmeye çalıştığınızda, Azure portalı ilk olarak ile Microsoft.Devices/iotHubs/listkeys/action
bir Azure rolü atanıp atanmadığını denetler. Böyle bir rolünüz varsa Azure portal, IoT Hub'a erişmek için paylaşılan erişim ilkelerindeki anahtarları kullanır. Aksi takdirde Azure portal, Microsoft Entra hesabınızı kullanarak verilere erişmeye çalışır.
Microsoft Entra hesabınızı kullanarak Azure portalından IoT Hub'a erişmek için IoT Hub veri kaynaklarına (cihazlar ve ikizler gibi) erişme izniniz olmalıdır. Ayrıca Azure portalında IoT Hub kaynağına gitmek için izinlere de ihtiyacınız vardır. IoT Hub tarafından sağlanan yerleşik roller cihazlar ve ikiz gibi kaynaklara erişim hakkı verir, ancak IoT Hub kaynağına erişim vermez. Bu nedenle portala erişim için Okuyucu gibi bir Azure Resource Manager rolünün de atanması gerekir. Okuyucu rolü iyi bir seçimdir çünkü portalda gezinmenizi sağlayan en kısıtlı roldür. bu izin içermez Microsoft.Devices/iotHubs/listkeys/action
(paylaşılan erişim ilkeleri aracılığıyla tüm IoT Hub veri kaynaklarına erişim sağlar).
Bir hesabın atanan izinler dışında erişime sahip olmadığından emin olmak için, özel bir rol oluştururken izni eklemeyin Microsoft.Devices/iotHubs/listkeys/action
. Örneğin, cihaz kimliklerini okuyabilen ancak cihaz oluşturabilen veya silemeyen özel bir rol oluşturmak için, şu özel rolü oluşturun:
- Veri eylemine
Microsoft.Devices/IotHubs/devices/read
sahiptir. - Veri eylemi yoktur
Microsoft.Devices/IotHubs/devices/write
. - Veri eylemi yoktur
Microsoft.Devices/IotHubs/devices/delete
. - Eyleme sahip
Microsoft.Devices/iotHubs/listkeys/action
değil.
Ardından hesabın Sahip veya Katkıda Bulunan gibi izinlere Microsoft.Devices/iotHubs/listkeys/action
sahip başka bir rolü olmadığından emin olun. Hesabın kaynak erişimine izin vermek ve portalda gezinmek için Okuyucu'ya atayın.
Azure CLI'dan Microsoft Entra Id erişimi
IoT Hub'a yönelik komutların çoğu Microsoft Entra kimlik doğrulamayı destekler. komutlarını çalıştırmak için kullanılan kimlik doğrulama türünü, veya değerlerini kabul key
login
eden parametresini --auth-type
kullanarak denetleyebilirsiniz. Değer key
varsayılan değerdir.
--auth-type
Değeri dahakey
önce olduğu gibi olduğunda CLI, IoT Hub ile etkileşime geçtiğinde otomatik olarak uygun bir ilke bulur.Değeri olduğunda
--auth-type
login
, işlem için sorumluda günlüğe kaydedilen Azure CLI'dan bir erişim belirteci kullanılır.
Daha fazla bilgi için Bkz . Azure CLI için Azure IoT uzantısı sürüm sayfası.
SDK örnekleri
Sonraki adımlar
- Uygulamanızda Microsoft Entra Id kullanmanın avantajları hakkında daha fazla bilgi için bkz. Microsoft kimlik platformu tümleştirme.
- Erişim belirteçlerinin, yenileme belirteçlerinin ve kimlik belirteçlerinin yetkilendirme ve kimlik doğrulamasında nasıl kullanıldığını öğrenmek için bkz . Güvenlik belirteçleri.