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. Prinsip keamanan ini bisa menjadi pengguna, kelompok, atau prinsip 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 ID Microsoft Entra 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 pembuktian bahwa Anda adalah orang yang Anda katakan. Autentikasi memverifikasi identitas pengguna atau perangkat ke IoT Hub. Ini kadang-kadang disingkat menjadi AuthN.
Otorisasi adalah proses mengonfirmasi izin untuk pengguna atau perangkat yang diautentikasi di IoT Hub. Ini 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 utama 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 perwakilan cocok dengan sumber daya atau API yang diminta, IoT Hub akan mengesahkan permintaan tersebut. Jadi, langkah ini mengharuskan satu atau beberapa peran Azure untuk ditugaskan ke prinsip 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 perwakilan, berikan penetapan peran tersebut.
- Jika prinsipal adalah pengguna, grup, atau prinsip layanan aplikasi, ikuti panduan di Menetapkan peran Azure dengan menggunakan portal Microsoft Azure.
- Jika prinsipal adalah identitas terkelola, ikuti panduan di Menetapkan akses identitas terkelola ke sumber daya.
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 IoT Hub | Memungkinkan akses penuh ke operasi pesawat data Azure IoT Hub. |
Pembaca Data IoT Hub | Memungkinkan akses baca penuh ke properti pesawat data IoT Hub. |
Kontributor Registri IoT Hub | Memungkinkan akses penuh ke registri perangkat IoT Hub. |
Kontributor Kembar IoT Hub | Memungkinkan untuk membaca dan menulis akses ke semua perangkat IoT Hub dan modul kembar. |
Anda juga dapat menentukan peran kustom untuk digunakan dengan Azure IoT Hub dengan menggabungkan izin yang Anda butuhkan. Untuk informasi selengkapnya, lihat Membuat peran kustom untuk kontrol akses berbasis peran Azure.
Cakupan sumber daya
Sebelum Anda menetapkan peran Azure RBAC ke perwakilan keamanan, tentukan cakupan akses yang harus dimiliki perwakilan keamanan. Itu selalu yang terbaik untuk memberikan hanya ruang lingkup yang paling sempit. 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 Azure 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 |
Membaca perangkat atau modul apa pun kembar. |
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 |
Menghapus pekerjaan 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 |
Menghapus semua perintah 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 |
Memvalidasi kondisi target dan kueri metrik khusus untuk konfigurasi. |
Tip
- Operasi Pembaruan Registri Massal memerlukan
Microsoft.Devices/IotHubs/devices/write
danMicrosoft.Devices/IotHubs/devices/delete
. - Operasi Kueri Kembar memerlukan
Microsoft.Devices/IotHubs/twins/read
. - Get Digital Twin memerlukan
Microsoft.Devices/IotHubs/twins/read
. Update Digital Twin memerlukanMicrosoft.Devices/IotHubs/twins/write
. - Baik Perintah Komponen Dipanggil maupun Perintah Tingkat Akar Dipanggil memerlukan
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
Catatan
Untuk mendapatkan data dari IoT Hub dengan menggunakan ID Microsoft Entra, siapkan perutean ke titik akhir Azure 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 akan 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.
Pastikan bahwa klien dan pengguna layanan Anda memiliki akses yang memadai ke IoT hub Anda. Ikuti prinsip hak istimewa terendah.
Di portal Microsoft Azure, buka IoT hub Anda.
Di panel sebelah kiri, pilih Kebijakan akses berbagi.
Di bawah Sambungkan menggunakan kebijakan akses bersama, pilih Tolak, dan tinjau peringatan.
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 Azure, portal Azure pertama-tama memeriksa apakah Anda telah diberi peran Azure dengan Microsoft.Devices/iotHubs/listkeys/action
. Jika demikian, portal Microsoft Azure menggunakan kunci dari kebijakan akses berbagi untuk mengakses Azure 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 tetapi 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
defaultnya adalah benar.
Ketika
--auth-type
memiliki nilaikey
, seperti sebelumnya, CLI secara otomatis menemukan kebijakan yang sesuai saat berinteraksi dengan IoT Hub.Ketika
--auth-type
memiliki nilailogin
, token akses dari Azure CLI yang masuk perwakilan digunakan untuk operasi.
Untuk informasi selengkapnya, lihat halaman rilis ekstensi Azure IoT untuk Azure CLI.
Sampel SDK
Langkah berikutnya
- Untuk informasi selengkapnya tentang keuntungan menggunakan MICROSOFT Entra ID di aplikasi Anda, lihat Mengintegrasikan dengan platform identitas Microsoft.
- Untuk mempelajari bagaimana token akses, token refresh, dan token ID digunakan dalam autentikasi dan otorisasi, lihat Token keamanan.