Baca dalam bahasa Inggris

Bagikan melalui


Mengontrol akses ke IoT Hub dengan menggunakan MICROSOFT Entra ID

Anda dapat menggunakan ID Microsoft Entra untuk mengautentikasi permintaan ke API layanan Azure IoT Hub, seperti membuat identitas perangkat dan memanggil metode langsung. Anda juga dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk mengotorisasi API layanan yang sama. Dengan menggunakan teknologi ini bersama-sama, Anda dapat memberikan izin untuk mengakses API layanan IoT Hub ke perwakilan keamanan Microsoft Entra. Prinsipal keamanan ini bisa berupa pengguna, kelompok, atau prinsipal layanan aplikasi.

Mengautentikasi akses dengan menggunakan ID Microsoft Entra dan mengontrol izin dengan menggunakan Azure RBAC memberikan peningkatan keamanan dan kemudahan penggunaan melalui token keamanan. Untuk meminimalkan potensi masalah keamanan yang melekat pada token keamanan, kami sarankan Anda menerapkan autentikasi Microsoft Entra jika memungkinkan.

Catatan

Autentikasi dengan Microsoft Entra ID tidak didukung untuk API perangkat IoT Hub (seperti pesan perangkat-ke-cloud dan memperbarui properti yang dilaporkan). Gunakan tombol simetris atau X.509untuk mengautentikasi perangkat ke Hub IoT.

Autentikasi dan otorisasi

Autentikasi adalah proses membuktikan bahwa Anda adalah orang yang Anda katakan. Autentikasi memverifikasi identitas pengguna atau perangkat ke IoT Hub. Autentikasi terkadang disingkat menjadi AuthN.

Otorisasi adalah proses mengonfirmasi izin untuk pengguna atau perangkat yang diautentikasi di IoT Hub. Otorisasi menentukan sumber daya dan perintah apa yang diizinkan untuk Anda akses, dan apa yang dapat Anda lakukan dengan sumber daya dan perintah tersebut. Otorisasi kadang-kadang disingkat menjadi AuthZ.

Saat perwakilan keamanan Microsoft Entra meminta akses ke API layanan IoT Hub, identitas perwakilan pertama kali diautentikasi. Untuk autentikasi, permintaan harus berisi token akses OAuth 2.0 saat runtime. Nama sumber daya untuk meminta token adalah https://iothubs.azure.net. Jika aplikasi berjalan di sumber daya Azure seperti Azure VM, aplikasi Azure Functions, atau aplikasi Azure App Service, aplikasi dapat direpresentasikan sebagai identitas terkelola.

Setelah perwakilan Microsoft Entra diautentikasi, langkah selanjutnya adalah otorisasi. Dalam langkah ini, IoT Hub menggunakan layanan penetapan peran Microsoft Entra untuk menentukan izin apa yang dimiliki perwakilan. Jika izin prinsipal cocok dengan sumber daya atau API yang diminta, IoT Hub mengotorisasi permintaan tersebut. Jadi, langkah ini mengharuskan satu atau beberapa peran Azure untuk ditetapkan pada prinsipal keamanan. IoT Hub menyediakan beberapa peran bawaan yang memiliki grup izin umum.

Mengelola akses ke IoT Hub dengan menggunakan penetapan peran Azure RBAC

Dengan MICROSOFT Entra ID dan RBAC, IoT Hub mengharuskan perwakilan yang meminta API memiliki tingkat izin yang sesuai untuk otorisasi. Untuk memberikan izin kepada kepala sekolah, berikan penetapan peran.

Untuk memastikan hak istimewa paling sedikit, selalu tetapkan peran yang sesuai pada cakupan sumber daya serendahmungkin, yang mungkin merupakan lingkup IoT Hub.

IoT Hub menyediakan peran bawaan Azure berikut untuk mengotorisasi akses ke API layanan IoT Hub dengan menggunakan ID Microsoft Entra dan RBAC:

Peran Deskripsi
Kontributor Data untuk IoT Hub Memungkinkan akses penuh ke operasi lapisan data Azure IoT Hub.
Pembaca Data IoT Hub Memungkinkan akses baca penuh ke properti lapisan data IoT Hub.
Kontributor Registri IoT Hub Memungkinkan akses penuh ke registri perangkat IoT Hub.
Kontributor Twin IoT Hub Memungkinkan membaca dan menulis data ke semua perangkat dan modul kembar IoT Hub.

Anda juga dapat menentukan peran kustom untuk digunakan dengan Azure IoT Hub dengan menggabungkan izin yang Anda butuhkan. Untuk informasi selengkapnya, lihat Peran kustom Azure.

Cakupan sumber daya

Sebelum Anda menetapkan peran Azure RBAC ke perwakilan keamanan, tentukan cakupan akses yang harus dimiliki perwakilan keamanan. Sebaiknya selalu memberikan ruang lingkup yang paling terbatas. Peran Azure RBAC yang ditentukan pada cakupan yang lebih luas diwariskan oleh sumber daya di bawahnya.

Daftar ini menjelaskan tingkat yang Anda dapat mengakses cakupan IoT Hub, dimulai dengan cakupan tersempit:

  • IoT Hub. Pada lingkup ini, penetapan peran berlaku untuk IoT hub. Tidak ada ruang lingkup yang lebih kecil dari hub IoT individu. Penetapan peran pada cakupan yang lebih kecil, seperti identitas perangkat individual, tidak didukung.
  • Grup sumber daya. Pada lingkup ini, penetapan peran berlaku untuk semua hub IoT dalam grup sumber daya.
  • Langganan. Pada cakupan ini, penetapan peran berlaku untuk semua hub IoT di semua grup sumber daya dalam langganan.
  • Grup manajemen. Pada cakupan ini, penetapan peran berlaku untuk semua hub IoT di semua grup sumber daya di semua langganan di grup manajemen.

Izin untuk API layanan Hub IoT

Tabel berikut ini menjelaskan izin yang tersedia untuk operasi API layanan Azure IoT Hub. Untuk memungkinkan klien menghubungi operasi tertentu, pastikan bahwa peran RBAC yang ditetapkan klien menawarkan izin yang memadai untuk operasi tersebut.

Tindakan RBAC Deskripsi
Microsoft.Devices/IotHubs/devices/read Membaca identitas perangkat atau modul apa pun.
Microsoft.Devices/IotHubs/devices/write Membuat atau memperbarui identitas perangkat atau modul apa pun.
Microsoft.Devices/IotHubs/devices/delete Menghapus identitas perangkat atau modul apa pun.
Microsoft.Devices/IotHubs/twins/read Baca tiruan perangkat atau modul mana pun.
Microsoft.Devices/IotHubs/twins/write Tulis perangkat atau modul apa pun kembar.
Microsoft.Devices/IotHubs/jobs/read Kembalikan daftar pekerjaan.
Microsoft.Devices/IotHubs/jobs/write Membuat atau memperbarui pekerjaan apa pun.
Microsoft.Devices/IotHubs/jobs/delete Hapus tugas apa pun.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/send/action Kirim pesan cloud-to-device ke perangkat apa pun.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/feedback/action Terima, selesaikan, atau abaikan pemberitahuan umpan balik pesan cloud-to-device.
Microsoft.Devices/IotHubs/cloudToDeviceMessages/queue/purge/action Hapus semua perintah yang tertunda untuk perangkat.
Microsoft.Devices/IotHubs/directMethods/invoke/action Memanggil metode langsung pada perangkat atau modul apa pun.
Microsoft.Devices/IotHubs/fileUpload/notifications/action Menerima, melengkapi, atau meninggalkan pemberitahuan unggahan file.
Microsoft.Devices/IotHubs/statistics/read Membaca statistik perangkat dan layanan.
Microsoft.Devices/IotHubs/configurations/read Membaca konfigurasi manajemen perangkat.
Microsoft.Devices/IotHubs/configurations/write Membuat atau memperbarui konfigurasi manajemen perangkat.
Microsoft.Devices/IotHubs/configurations/delete Menghapus konfigurasi manajemen perangkat apa pun.
Microsoft.Devices/IotHubs/configurations/applyToEdgeDevice/action Menerapkan konten konfigurasi ke perangkat edge.
Microsoft.Devices/IotHubs/configurations/testQueries/action Validasi kondisi sasaran dan kueri metrik khusus untuk konfigurasi.

Tip

Catatan

Untuk mendapatkan data dari IoT Hub dengan menggunakan ID Microsoft Entra, siapkan perutean ke endpoint Event Hubs kustom. Untuk mengakses titik akhir yang kompatibel dengan Event Hub bawaan, gunakan metode string koneksi (kunci akses berbagi) seperti sebelumnya.

Menerapkan autentikasi Microsoft Entra

Secara default, IoT Hub mendukung akses API layanan melalui ID Microsoft Entra dan kebijakan akses bersama dan token keamanan. Untuk meminimalkan potensi kerentanan keamanan yang melekat pada token keamanan, Anda dapat menonaktifkan akses dengan kebijakan akses bersama.

Peringatan

Dengan menolak koneksi menggunakan kebijakan akses bersama, semua pengguna dan layanan yang terhubung menggunakan metode ini segera kehilangan akses. Terutama, karena Device Provisioning Service (DPS) hanya mendukung penautan hub IoT menggunakan kebijakan akses bersama, semua alur provisi perangkat gagal dengan kesalahan "tidak sah". Lanjutkan dengan hati-hati dan rencanakan untuk mengganti akses dengan akses berbasis peran Microsoft Entra.

Jangan lanjutkan jika Anda menggunakan Device Provisioning Service.

  1. Pastikan bahwa klien dan pengguna layanan Anda memiliki akses yang memadai ke IoT hub Anda. Ikuti prinsip hak istimewa terendah.

  2. Masuk ke portal Azure dan navigasikan ke IoT hub Anda.

  3. Pilih Kebijakan akses bersama dari bagian Pengaturan keamanan pada menu navigasi.

  4. Di bawah Sambungkan menggunakan kebijakan akses bersama, pilih Tolak, dan tinjau peringatannya.

    Cuplikan layar yang memperlihatkan cara menonaktifkan kebijakan akses bersama IoT Hub.

  5. Pilih Simpan.

API layanan IoT Hub Anda sekarang hanya dapat diakses melalui ID Microsoft Entra dan RBAC.

Akses ID Microsoft Entra dari portal Azure

Anda dapat menyediakan akses ke IoT Hub dari portal Azure dengan kebijakan akses bersama atau izin Microsoft Entra.

Saat Anda mencoba mengakses IoT Hub dari portal Microsoft Azure, portal Microsoft Azure terlebih dahulu memeriksa apakah Anda diberi peran Azure dengan Microsoft.Devices/iotHubs/listkeys/action. ** Jika demikian, portal Azure menggunakan kunci dari kebijakan akses berbagi untuk mengakses IoT Hub. Jika tidak, portal Azure mencoba mengakses data dengan menggunakan akun Microsoft Entra Anda.

Untuk mengakses IoT Hub dari portal Azure dengan menggunakan akun Microsoft Entra, Anda memerlukan izin untuk mengakses sumber daya data IoT Hub (seperti perangkat dan kembar). Anda juga memerlukan izin untuk masuk ke sumber daya IoT Hub di portal Microsoft Azure. Peran bawaan yang disediakan oleh IoT Hub memberikan akses ke sumber daya seperti perangkat dan kembar digital namun tidak memberikan akses ke sumber daya IoT Hub. Jadi, akses ke portal juga memerlukan penugasan peran Azure Resource Manager seperti Reader. Peran pembaca adalah pilihan yang baik karena ini adalah peran yang paling dibatasi yang memungkinkan Anda menavigasi portal. Ini tidak termasuk izin Microsoft.Devices/iotHubs/listkeys/action (yang menyediakan akses ke semua sumber daya data IoT Hub melalui kebijakan akses bersama).

Untuk memastikan akun tidak memiliki akses di luar izin yang ditetapkan, jangan sertakan izin Microsoft.Devices/iotHubs/listkeys/action saat Anda membuat peran kustom. Misalnya, untuk membuat peran khusus yang dapat membaca identitas perangkat tetapi tidak dapat membuat atau menghapus perangkat, buat peran khusus yang:

  • Memiliki tindakan data Microsoft.Devices/IotHubs/devices/read.
  • Tidak memiliki tindakan data Microsoft.Devices/IotHubs/devices/write.
  • Tidak memiliki tindakan data Microsoft.Devices/IotHubs/devices/delete.
  • Tidak memiliki tindakan Microsoft.Devices/iotHubs/listkeys/action.

Kemudian, pastikan akun tidak memiliki peran lain yang memiliki izin Microsoft.Devices/iotHubs/listkeys/action, seperti Pemilik atau Kontributor. Untuk mengizinkan akun memiliki akses sumber daya dan menavigasi portal, tetapkan Pembaca.

Akses ID Microsoft Entra dari Azure CLI

Sebagian besar perintah terhadap IoT Hub mendukung autentikasi Microsoft Entra. Anda dapat mengontrol jenis autentikasi yang digunakan untuk menjalankan perintah dengan menggunakan parameter --auth-type, yang menerima nilai key atau login. Nilai key adalah bawaan.

  • Ketika --auth-type memiliki nilai key, seperti sebelumnya, CLI secara otomatis menemukan kebijakan yang sesuai saat berinteraksi dengan IoT Hub.

  • Ketika --auth-type memiliki nilai login, token akses dari Azure CLI yang masuk pada prinsipal digunakan untuk operasi.

Untuk informasi selengkapnya, lihat halaman rilis ekstensi Azure IoT untuk Azure CLI.

Sampel SDK

Langkah berikutnya


Sumber Daya Tambahan:

Dokumentasi

  • Mengontrol akses dengan shared access signature - Azure IoT Hub

    Pahami bagaimana Azure IoT Hub menggunakan tanda tangan akses bersama (SAS) untuk mengautentikasi identitas dan mengotorisasi akses ke hub dan perangkat IoT.

  • Memahami titik akhir Azure IoT Hub

    Artikel ini menyediakan informasi tentang titik akhir yang menghadap perangkat dan yang berinteraksi dengan layanan di IoT Hub.

  • Memahami registri identitas Azure IoT Hub

    Artikel ini menyediakan deskripsi registri identitas IoT Hub dan cara menggunakannya untuk mengelola perangkat Anda. Mencakup informasi tentang impor dan ekspor identitas perangkat secara massal.