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'nin yetkilendirme için uygun izin düzeyine sahip olmasını isteyen sorumluyu gerektirir. Sorumluya izin vermek için ona bir rol ataması verin.

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 Katkıda Bulunanı 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şimine izin verir.
IoT Hub Kayıt Defteri Katkıda Bulunanı IoT Hub cihaz kayıt defterine tam erişime izin verir.
IoT Hub İkizi Katkıda Bulunanı Tüm IoT Hub cihazına 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 veya ikiz bölümü 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/writeMicrosoft.Devices/IotHubs/devices/deletegerektirir.
  • İkiz Sorgu işlemi gerektirir Microsoft.Devices/IotHubs/twins/read.
  • Get Digital Twin gerektirir Microsoft.Devices/IotHubs/twins/read. Güncelleştirme Dijital İkizi gerektirir Microsoft.Devices/IotHubs/twins/write.
  • Hem Bileşen Çağır Komutu hem de Kök Düzeyi Çağırma Komutu gerektirirMicrosoft.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. DPS kullanıyorsanız devam etmeyin.

  1. 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.
  2. Azure portalında IoT hub'ınıza gidin.
  3. Sol bölmede Paylaşılan erişim ilkeleri'ni seçin.
  4. Paylaşılan erişim ilkelerini kullanarak Bağlan altında Reddet'i seçin ve uyarıyı gözden geçirin. Screenshot that shows how to turn off IoT Hub shared access policies.

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/actionbir Azure rolü atanıp atanmadığını denetler. 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 izni 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 keylogin eden parametresini --auth-type kullanarak denetleyebilirsiniz. Değer key varsayılan değerdir.

  • --auth-type Değeri daha key ö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-typelogin , 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 Entra Id ile Tümleştirme.
  • Kullanıcılar ve hizmet sorumluları için Microsoft Entra Id'den erişim belirteçleri isteme hakkında daha fazla bilgi için bkz . Microsoft Entra Id için kimlik doğrulama senaryoları.

Kayıt gruplarını kullanarak birden çok X.509 cihazı sağlamak için Cihaz Sağlama Hizmeti'ni kullanın.