Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
- Jika prinsipal adalah pengguna, grup, atau perwakilan layanan aplikasi, ikuti panduan dalam Menetapkan peran Azure menggunakan portal Microsoft Azure.
- Jika prinsipal adalah identitas terkelola, ikuti panduan di Memberikan akses identitas terkelola ke sumber daya Azure atau ke sumber daya lainnya.
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
- Operasi Update Registry memerlukan kedua
Microsoft.Devices/IotHubs/devices/write
danMicrosoft.Devices/IotHubs/devices/delete
. - Operasi Get Twins memerlukan
Microsoft.Devices/IotHubs/twins/read
. -
Get Digital Twin memerlukan
Microsoft.Devices/IotHubs/twins/read
. Update Digital Twin memerlukanMicrosoft.Devices/IotHubs/twins/write
. - Baik Panggil Perintah Komponen maupun Panggil Perintah Tingkat Akar memerlukan
Microsoft.Devices/IotHubs/directMethods/invoke/action
.
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.
Pastikan bahwa klien dan pengguna layanan Anda memiliki akses yang memadai ke IoT hub Anda. Ikuti prinsip hak istimewa terendah.
Masuk ke portal Azure dan navigasikan ke IoT hub Anda.
Pilih Kebijakan akses bersama dari bagian Pengaturan keamanan pada menu navigasi.
Di bawah Sambungkan menggunakan kebijakan akses bersama, pilih Tolak, dan tinjau peringatannya.
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 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 pada prinsipal 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 otorisasi dan autentikasi, lihat Gambaran umum token dan klaim.