Yönetilen kimlikler için IoT Hub desteği
Yönetilen kimlikler güvenli bir şekilde Azure hizmetlerine, Microsoft Entra ID üzerinde otomatik olarak yönetilen bir kimlik sağlar. Bu, geliştiricilerin kimlik sağlayarak kimlik bilgilerini yönetme gereğini ortadan kaldırır. İki tür yönetilen kimlik vardır: sistem tarafından atanan ve kullanıcı tarafından atanan. IoT Hub ikisini de destekler.
IoT Hub'da yönetilen kimlikler ileti yönlendirme, dosya yükleme ve toplu cihaz içeri/dışarı aktarma gibi özellikler için IoT Hub'ı diğer Azure hizmetlerine bağlamak için kullanılabilir. Bu makalede, farklı işlevler için IoT hub'ınızda sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlikleri kullanmayı öğreneceksiniz.
Önkoşullar
Azure kaynakları için yönetilen kimlikler nedir? bölümünde sistem tarafından atanan ve kullanıcı tarafından atanan yönetilen kimlik arasındaki farkları anlama
Azure aboneliğinizde bir IoT hub'ı. Henüz bir hub'ına sahip değilseniz IoT hub'ı oluşturma makalesindeki adımları izleyebilirsiniz.
Sistem tarafından atanan yönetilen kimlik
Azure portalında sistem tarafından atanan yönetilen kimliği etkinleştirebilir veya devre dışı bırakabilirsiniz
Azure portalında oturum açın ve IoT hub'ınıza gidin.
Gezinti menüsünün Güvenlik ayarları bölümünden Kimlik'i seçin.
Sistem tarafından atanan sekmesini seçin.
Sistem tarafından atanan yönetilen kimlik Durumu'nu Açık veya Kapalı olarak ayarlayın ve Kaydet'i seçin.
Not
Sistem tarafından atanan yönetilen kimliği kullanımdayken kapatamazsınız. Özelliği devre dışı bırakmadan önce hiçbir özel uç noktanın sistem tarafından atanan yönetilen kimlik kimlik doğrulamasını kullanmadığından emin olun.
Kullanıcı tarafından atanan yönetilen kimlik
Bu bölümde, Azure portalını kullanarak ioT hub'ına kullanıcı tarafından atanan yönetilen kimliği eklemeyi ve kaldırmayı öğreneceksiniz.
İlk olarak tek başına kaynak olarak kullanıcı tarafından atanan bir yönetilen kimlik oluşturmanız gerekir. Bunu yapmak için Kullanıcı tarafından atanan yönetilen kimlikleri yönetme başlığındaki yönergeleri izleyebilirsiniz.
IoT hub'ınıza gidin, IoT Hub portalında Kimlik'e gidin.
Kullanıcı Tarafından Atanan sekmesinde Kullanıcı tarafından atanan yönetilen kimliği ilişkilendir'e tıklayın. Hub'ınıza eklemek istediğiniz kullanıcı tarafından atanan yönetilen kimliği seçin ve seç'e tıklayın.
IoT hub'ından kullanıcı tarafından atanan bir kimliği kaldırabilirsiniz. Kaldırmak istediğiniz kullanıcı tarafından atanan kimliği seçin ve Kaldır düğmesine tıklayın. Bunu yalnızca IoT hub'ından kaldırdığınıza ve bu kaldırma işleminin kaynak olarak kullanıcı tarafından atanan kimliği silmediğini unutmayın. Kullanıcı tarafından atanan kimliği kaynak olarak silmek için Kullanıcı tarafından atanan yönetilen kimlikleri yönetme başlığındaki yönergeleri izleyin.
IoT Hub'dan diğer Azure kaynaklarına çıkış bağlantısı
Yönetilen kimlikler IoT Hub'dan diğer Azure hizmetlerine çıkış bağlantısı için kullanılabilir. Depolama hesapları, olay hub'ları ve hizmet veri yolu uç noktaları dahil olmak üzere müşteriye ait uç noktalara her IoT Hub çıkış bağlantısı için hangi yönetilen kimliğin kullanılacağını seçebilirsiniz.
Not
Yalnızca sistem tarafından atanan yönetilen kimlik IoT Hub'ın özel kaynaklara erişmesine izin verir. Kullanıcı tarafından atanan yönetilen kimliği kullanmak istiyorsanız, bağlantıya izin vermek için bu özel kaynaklardaki genel erişimin etkinleştirilmesi gerekir.
Yönetilen kimliklerle ileti yönlendirmeyi yapılandırma
Bu bölümde, örnek olarak bir Event Hubs özel uç noktasına ileti yönlendirmeyi kullanacağız. Örnek, diğer yönlendirme özel uç noktaları için de geçerlidir.
Yönetilen kimliğe doğru erişimi atamak için Azure portalında olay hub'ınıza gidin.
Erişim denetimi (IAM) öğesini seçin.
Rol ataması ekle'yi > seçin.
Rol sekmesinde Azure Event Hubs Veri Göndereni'ni seçin.
Not
Depolama hesabı için rol olarak Depolama Blob Verileri Katkıda Bulunanı 'nı (Katkıda Bulunan veya Depolama Hesabı Katkıda Bulunanı değil) seçin. Bir hizmet veri yolu için Azure Service Bus Veri Göndereni'ne tıklayın.
Üyeler sekmesinde Yönetilen kimlik öğesini ve ardından Üye seç öğesini seçin.
Kullanıcı tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Kullanıcı tarafından atanan yönetilen kimlik'i ve ardından kullanıcı tarafından atanan yönetilen kimliğinizi seçin.
Sistem tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Tüm sistem tarafından atanan yönetilen kimlikler'i ve ardından IoT Hub'ınızın kaynak adını seçin.
Gözden geçirme + atama sekmesinde Gözden geçir + ata’yı seçerek rolü atayın.
Rol atamaları hakkında daha fazla bilgi için bkz . Azure portalını kullanarak Azure rolleri atama.
Sanal ağ üzerinden özel uç noktanıza bağlantıyı kısıtlamanız gerekiyorsa, IoT hub'ınıza belirli bir uç noktaya erişim vermek için güvenilen Microsoft birinci taraf özel durumunu açmanız gerekir. Örneğin, bir olay hub'ı özel uç noktası ekliyorsanız olay hub'ınızdaki Güvenlik duvarları ve sanal ağlar sekmesine gidin ve Seçili ağlardan erişime izin ver seçeneğini etkinleştirin. Özel Durumlar listesinin altında Güvenilen Microsoft hizmetleri olay hub'larına erişmesine izin ver kutusunu işaretleyin. Kaydet düğmesine tıklayın. Bu, depolama hesabı ve hizmet veri yolu için de geçerlidir. Sanal ağlar için IoT Hub desteği hakkında daha fazla bilgi edinin.
Not
Olay hub'ını IoT Hub'a özel uç nokta olarak eklemeden önce yönetilen kimliğe doğru erişimi atamak için yukarıdaki adımları tamamlamanız gerekir. Rol atamasının yayılması için lütfen birkaç dakika bekleyin.
Ardından IoT hub'ınıza gidin. Hub'ınızda İleti Yönlendirme'ye gidin ve Ekle'yi seçin.
Uç Nokta sekmesinde, aşağıdaki bilgileri sağlayarak olay hub'ınız için bir uç nokta oluşturun:
Parametre Value Uç nokta türü Event Hubs'ı seçin. Uç nokta adı Yeni uç nokta için benzersiz bir ad sağlayın veya mevcut bir Event Hubs uç noktasını seçmek için Var olanı seç'i seçin. Event Hubs ad alanı Aboneliğinizde mevcut bir Event Hubs ad alanını seçmek için açılan menüyü kullanın. Olay hub'ı örneği Ad alanınızda var olan bir olay hub'ını seçmek için açılan menüyü kullanın. Kimlik doğrulaması türü Kullanıcı tarafından atanan'ı seçin, ardından açılan menüyü kullanarak olay hub'ınızda oluşturduğunuz Kullanıcı tarafından atanan kimliği seçin. Oluştur + İleri'yi seçin. Bu uç noktaya işaret eden bir yol oluşturmak için sihirbaz aracılığıyla devam edebilir veya sihirbazı kapatabilirsiniz.
Mevcut bir özel uç noktanın kimlik doğrulama türünü değiştirebilirsiniz. Bir uç noktayı değiştirmek için aşağıdaki adımları kullanın:
IoT hub'ınızda sol gezinti bölmesinde İleti yönlendirme'yi ve ardından Özel uç noktalar'ı seçin.
Değiştirmek istediğiniz özel uç noktanın onay kutusunu seçin ve ardından Kimlik doğrulama türünü değiştir'i seçin.
Bu uç nokta için yeni kimlik doğrulama türünü ve ardından Kaydet'i seçin.
Yönetilen kimliklerle dosya yüklemeyi yapılandırma
IoT Hub'ın dosya yükleme özelliği, cihazların dosyaları müşteriye ait bir depolama hesabına yüklemesine olanak tanır. Dosya yüklemesinin çalışmasına izin vermek için IoT Hub'ın depolama hesabıyla bağlantısı olmalıdır. İleti yönlendirmeye benzer şekilde, Azure Depolama hesabınıza IoT Hub çıkış bağlantısı için tercih edilen kimlik doğrulama türünü ve yönetilen kimliği seçebilirsiniz.
Azure portalda depolama hesabınıza gidin.
Erişim denetimi (IAM) öğesini seçin.
Rol ataması ekle'yi > seçin.
Rol sekmesinde Depolama Blob Verileri Katkıda Bulunanı'nı seçin. (Seçme Katkıda Bulunan veya Depolama Hesabı Katkıda Bulunanı.)
Üyeler sekmesinde Yönetilen kimlik öğesini ve ardından Üye seç öğesini seçin.
Kullanıcı tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Kullanıcı tarafından atanan yönetilen kimlik'i ve ardından kullanıcı tarafından atanan yönetilen kimliğinizi seçin.
Sistem tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Tüm sistem tarafından atanan yönetilen kimlikler'i ve ardından IoT Hub'ınızın kaynak adını seçin.
Gözden geçirme + atama sekmesinde Gözden geçir + ata’yı seçerek rolü atayın.
Rol atamaları hakkında daha fazla bilgi için bkz . Azure portalını kullanarak Azure rolleri atama.
Depolama hesabınızla bağlantıyı bir sanal ağ üzerinden kısıtlamanız gerekiyorsa, IoT hub'ınıza depolama hesabına erişim vermek için güvenilir Microsoft birinci taraf özel durumunu açmanız gerekir. Depolama hesabı kaynak sayfanızda Güvenlik duvarları ve sanal ağlar sekmesine gidin ve Seçili ağlardan erişime izin ver seçeneğini etkinleştirin. Özel Durumlar listesinin altında Güvenilen Microsoft hizmetleri bu depolama hesabına erişmesine izin ver kutusunu işaretleyin. Kaydet düğmesine tıklayın. Sanal ağlar için IoT Hub desteği hakkında daha fazla bilgi edinin.
Not
Yönetilen kimliği kullanarak dosya yükleme için IoT Hub'a depolama hesabını kaydetmeden önce yönetilen kimliğe doğru erişimi atamak için yukarıdaki adımları tamamlamanız gerekir. Rol atamasının yayılması için lütfen birkaç dakika bekleyin.
IoT hub'ınızın kaynak sayfasında Dosya yükleme sekmesine gidin.
Görüntülenen sayfada blob depolama alanınızda kullanmayı planladığınız kapsayıcıyı seçin, Dosya bildirim ayarlarını, SAS TTL' yi, Varsayılan TTL'yi ve Maksimum teslim sayısını istediğiniz şekilde yapılandırın. Tercih edilen kimlik doğrulama türünü seçin ve Kaydet'e tıklayın. Bu adımda hata alırsanız depolama hesabınızı geçici olarak Tüm ağlardan erişime izin verecek şekilde ayarlayın ve yeniden deneyin. Dosya yükleme yapılandırması tamamlandıktan sonra depolama hesabında güvenlik duvarını yapılandırabilirsiniz.
Not
Dosya yükleme senaryosunda hem hub'ın hem de cihazınızın depolama hesabınıza bağlanması gerekir. Yukarıdaki adımlar, IoT hub'ınızı istenen kimlik doğrulama türüyle depolama hesabınıza bağlamak içindir. Yine de SAS URI'sini kullanarak cihazınızı depolamaya bağlamanız gerekir. Bugün SAS URI'sı bağlantı dizesi kullanılarak oluşturulur. Yakında yönetilen kimlikle SAS URI'sini oluşturmak için destek ekleyeceğiz. Lütfen dosya yükleme adımlarını izleyin.
Yönetilen kimliklerle toplu cihaz içeri/dışarı aktarmayı yapılandırma
IoT Hub, cihaz bilgilerini müşteri tarafından sağlanan bir depolama blobundan toplu olarak içeri/dışarı aktarma işlevini destekler. Bu işlev, IoT Hub'dan depolama hesabına bağlantı gerektirir.
Azure portalda depolama hesabınıza gidin.
Erişim denetimi (IAM) öğesini seçin.
Rol ataması ekle'yi > seçin.
Rol sekmesinde Depolama Blob Verileri Katkıda Bulunanı'nı seçin. (Seçme Katkıda Bulunan veya Depolama Hesabı Katkıda Bulunanı.)
Üyeler sekmesinde Yönetilen kimlik öğesini ve ardından Üye seç öğesini seçin.
Kullanıcı tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Kullanıcı tarafından atanan yönetilen kimlik'i ve ardından kullanıcı tarafından atanan yönetilen kimliğinizi seçin.
Sistem tarafından atanan yönetilen kimlikler için aboneliğinizi seçin, Tüm sistem tarafından atanan yönetilen kimlikler'i ve ardından IoT Hub'ınızın kaynak adını seçin.
Gözden geçirme + atama sekmesinde Gözden geçir + ata’yı seçerek rolü atayın.
Rol atamaları hakkında daha fazla bilgi için bkz . Azure portalını kullanarak Azure rolleri atama
İçeri ve dışarı aktarma işleri için REST API veya SDK kullanma
Artık içeri ve dışarı aktarma işleri oluşturmak için Azure IoT REST API'lerini kullanabilirsiniz. İstek gövdesinde aşağıdaki özellikleri sağlamanız gerekir:
- storageAuthenticationType: değerini identityBased olarak ayarlayın.
- inputBlobContainerUri: Bu özelliği yalnızca içeri aktarma işinde ayarlayın.
- outputBlobContainerUri: Bu özelliği hem içeri hem de dışarı aktarma işleri için ayarlayın.
- identity: Değeri kullanılacak yönetilen kimliğe ayarlayın.
Azure IoT Hub SDK'ları, hizmet istemcisinin kayıt defteri yöneticisinde de bu işlevselliği destekler. Aşağıdaki kod parçacığında, C# SDK'sını kullanarak içinde içeri veya dışarı aktarma işinin nasıl başlatıldığı gösterilmektedir.
C# kod parçacığı
// Create an export job
JobProperties jobProperties = JobProperties.CreateForExportJob(
outputBlobContainerUri: blobContainerUri,
excludeKeysInExport: false,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
// Create an import job
JobProperties jobProperties = JobProperties.CreateForImportJob(
inputBlobContainerUri: blobContainerUri,
outputBlobContainerUri: blobContainerUri,
storageAuthenticationType: StorageAuthenticationType.IdentityBased,
identity: new ManagedIdentity
{
userAssignedIdentity = userDefinedManagedIdentityResourceId
});
Python kod parçacığı
# see note below
iothub_job_manager = IoTHubJobManager("<IoT Hub connection information>")
# Create an import job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="import",
input_blob_container_uri="<input container URI>",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
# Create an export job
result = iothub_job_manager.create_import_export_job(JobProperties(
type="export",
output_blob_container_uri="<output container URI>",
storage_authentication_type="identityBased",
exclude_keys_in_export=True,
identity=ManagedIdentity(
user_assigned_identity="<resource ID of user assigned managed identity>"
)
))
Not
- storageAuthenticationType identityBased olarak ayarlandıysa ve userAssignedIdentity özelliği null değilse, işler belirtilen kullanıcı tarafından atanan yönetilen kimliği kullanır.
- IoT hub'ı userAssignedIdentity içinde belirtilen kullanıcı tarafından atanan yönetilen kimlikle yapılandırılmamışsa, iş başarısız olur.
- storageAuthenticationType identityBased userAssignedIdentity özelliği null olarak ayarlandıysa, işler sistem tarafından atanan kimliği kullanır.
- IoT hub'ı kullanıcı tarafından atanan yönetilen kimlikle yapılandırılmadıysa, iş başarısız olur.
- storageAuthenticationType identityBased olarak ayarlanırsa ve hub'da kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimlikler yapılandırılmazsa, iş başarısız olur.
SDK örnekleri
Sonraki adımlar
IoT Hub özellikleri hakkında daha fazla bilgi edinmek için aşağıdaki bağlantıları kullanın: