Mengautentikasi dan mengotorisasi aplikasi dengan ID Microsoft Entra untuk mengakses entitas Azure Relay
Azure Relay mendukung penggunaan ID Microsoft Entra untuk mengotorisasi permintaan ke entitas Azure Relay (Hybrid Koneksi ions, WCF Relays). Dengan MICROSOFT Entra ID, Anda dapat menggunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk memberikan izin kepada prinsip keamanan, yang mungkin merupakan pengguna, grup, atau perwakilan layanan aplikasi. Untuk mempelajari selengkapnya tentang peran dan penetapan peran, lihat Memahami peran lainnya.
Catatan
Fitur ini umumnya tersedia di semua wilayah kecuali Microsoft Azure yang dioperasikan oleh 21Vianet.
Gambaran Umum
Jika perwakilan keamanan (pengguna, grup, aplikasi) berupaya mengakses entitas Relay, permintaan harus diotorisasi. Dengan ID Microsoft Entra, akses ke sumber daya adalah proses dua langkah.
- Pertama, identitas perwakilan keamanan diautentikasi, dan token OAuth 2.0 ditampilkan. Nama sumber daya untuk meminta token adalah
https://relay.azure.net
. Jika aplikasi berjalan dalam entitas Azure seperti Azure VM, set skala komputer virtual, atau aplikasi Azure Function, aplikasi tersebut dapat menggunakan identitas terkelola untuk mengakses sumber daya. - Selanjutnya, token diteruskan sebagai bagian dari permintaan ke layanan Relay, untukmengotorisasi akses ke sumber daya yang ditentukan (koneksi hibrid, relai WCF). Microsoft Entra mengotorisasi hak akses ke sumber daya aman melalui kontrol akses berbasis peran Azure (Azure RBAC). Azure Relay menentukan serangkaian peran bawaan Azure yang mencakup serangkaian izin umum yang digunakan untuk mengakses entitas Relay. Anda juga dapat menentukan peran kustom untuk mengakses data. Untuk daftar peran bawaan yang didukung oleh Azure Relay, lihat Peran bawaan Azure untuk Azure Relay. Aplikasi asli dan aplikasi web yang membuat permintaan ke Relay juga dapat diotorisasi dengan ID Microsoft Entra.
Peran bawaan Azure untuk Azure Relay
Untuk Azure Relay, pengelolaan namespace layanan dan semua sumber daya terkait melalui portal Azure dan API pengelolaan sumber daya Azure sudah dilindungi menggunakan model Azure RBAC. Azure dilengkapi dengan peran bawaan Azure untuk mengotorisasi akses ke namespace layanan Azure Relay:
Peran | Deskripsi |
---|---|
Pemilik Azure Relay | Gunakan peran ini untuk memberikan akses penuh ke sumber daya Azure Relay. |
Listener Azure Relay | Gunakan peran ini untuk memberikan akses dengar dan baca entitas ke sumber daya Azure Relay. |
Pengirim Azure Relay | Gunakan peran ini untuk memberikan akses kirim dan baca entitas ke sumber daya Azure Relay. |
Cakupan sumber daya
Sebelum Anda menetapkan peran Azure ke perwakilan keamanan, tentukan cakupan akses yang harus dimiliki perwakilan keamanan. Praktik terbaik memerintahkan bahwa yang terbaik selalu hanya memberikan cakupan sesempit mungkin.
Daftar berikut menjelaskan tingkat di mana Anda dapat mencakup akses ke sumber daya Azure Relay, dimulai dengan cakupan tersempit:
- Entitas Relay: Penetapan peran berlaku untuk entitas Relay tertentu seperti koneksi hibrid atau relai WCF.
- Namespace layanan Relay: Penetapan peran berlaku untuk semua entitas Relay dengan namespace layanan.
- Grup sumber daya: Penetapan peran berlaku untuk semua sumber daya Relay dengan grup sumber daya.
- Langganan: Penetapan peran berlaku untuk semua sumber daya Relay di semua grup sumber daya dalam langganan.
Catatan
Ingatlah bahwa penetapan peran Azure mungkin membutuhkan waktu hingga lima menit untuk disebarluaskan. Untuk informasi selengkapnya tentang bagaimana peran bawaan ditentukan, lihat Memahami definisi peran. Untuk informasi tentang membuat peran kustom Azure, lihat Peran kustom Azure.
Mengotentikasi dari aplikasi
Keuntungan utama menggunakan ID Microsoft Entra dengan Azure Relay adalah kredensial Anda tidak perlu lagi disimpan dalam kode Anda. Sebagai gantinya, Anda dapat meminta token akses OAuth 2.0 dari platform Identitas Microsoft. Microsoft Entra mengautentikasi prinsip keamanan (pengguna, grup, atau perwakilan layanan) yang menjalankan aplikasi. Jika autentikasi berhasil, ID Microsoft Entra mengembalikan token akses ke aplikasi, dan aplikasi kemudian dapat menggunakan token akses untuk mengotorisasi permintaan ke Azure Relay.
Bagian berikut menunjukkan cara mengonfigurasi aplikasi konsol untuk autentikasi dengan platform identitas Microsoft 2.0. Untuk informasi selengkapnya, lihat ringkasan platform identitas Microsoft (v2.0).
Untuk gambaran umum alur pemberian kode OAuth 2.0, lihat Mengotorisasi akses ke aplikasi web Microsoft Entra menggunakan alur pemberian kode OAuth 2.0.
Mendaftarkan aplikasi Anda dengan penyewa Microsoft Entra
Langkah pertama dalam menggunakan ID Microsoft Entra untuk mengotorisasi entitas Azure Relay adalah mendaftarkan aplikasi klien Anda dengan penyewa Microsoft Entra dari portal Azure. Ketika Anda mendaftarkan aplikasi klien, Anda menyediakan informasi tentang aplikasi ke AD. MICROSOFT Entra ID kemudian menyediakan ID klien (juga disebut ID aplikasi) yang dapat Anda gunakan untuk mengaitkan aplikasi Anda dengan runtime Microsoft Entra.
Untuk instruksi langkah demi langkah untuk mendaftarkan aplikasi Anda dengan MICROSOFT Entra ID, lihat Mulai Cepat: Mendaftarkan aplikasi dengan ID Microsoft Entra.
Penting
Catat ID Direktori (penyewa) dan ID Aplikasi (klien). Anda akan membutuhkan nilai-nilai ini untuk menjalankan aplikasi sampel.
Membuat rahasia klien
Aplikasi ini membutuhkan rahasia klien untuk membuktikan identitasnya saat meminta token. Di artikel yang sama yang ditautkan sebelumnya, lihat bagian Tambahkan rahasia klien untuk membuat rahasia klien.
Penting
Catat Rahasia Klien. Anda akan membutuhkannya untuk menjalankan aplikasi sampel.
Menetapkan peran Azure menggunakan portal Microsoft Azure
Tetapkan salah satu peran Azure Relay ke layanan utama aplikasi pada cakupan yang diinginkan (Entitas relai, namespace, grup sumber daya, langganan). Untuk langkah-langkah mendetail, lihat Menetapkan peran Azure menggunakan portal Azure.
Jalankan sampel
Unduh sampel aplikasi konsol dari GitHub.
Jalankan aplikasi secara lokal di komputer Anda sesuai petunjuk dari artikel README.
Catatan
Ikuti langkah-langkah yang sama untuk menjalankan aplikasi konsol sampel untuk WCF Relay.
Kode yang disoroti dari sampel
Berikut adalah kode dari sampel yang menunjukkan cara menggunakan autentikasi Microsoft Entra untuk menyambungkan ke layanan Azure Relay.
Buat objek TokenProvider dengan menggunakan metode
TokenProvider.CreateAzureActiveDirectoryTokenProvider
.Jika Anda belum membuat pendaftaran aplikasi, lihat bagian Daftarkan aplikasi Anda dengan ID Microsoft Entra untuk membuatnya, lalu buat rahasia klien seperti yang disebutkan di bagian Buat rahasia klien.
Jika Anda ingin menggunakan pendaftaran aplikasi yang ada, ikuti petunjuk berikut untuk mendapatkan ID Aplikasi (klien) dan ID Direktori (penyewa).
- Masuk ke portal Azure.
- Cari dan pilih ID Microsoft Entra menggunakan bilah pencarian di bagian atas.
- Pada halaman ID Microsoft Entra, pilih Pendaftaran aplikasi di bagian Kelola di menu sebelah kiri.
- Pilih pendaftaran aplikasi Anda.
- Pada halaman untuk pendaftaran aplikasi, Anda akan melihat nilai untuk ID Aplikasi (klien) dan ID Direktori (penyewa).
Untuk mendapatkan rahasia klien, ikuti langkah-langkah berikut:
- Pada halaman pendaftaran aplikasi Anda, pilih Sertifikat & rahasia pada menu sebelah kiri.
- Gunakan tombol salin di kolom Nilai untuk rahasia di bagian Rahasia klien.
static TokenProvider GetAadTokenProvider(string clientId, string tenantId, string clientSecret) { return TokenProvider.CreateAzureActiveDirectoryTokenProvider( async (audience, authority, state) => { IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create(clientId) .WithAuthority(authority) .WithClientSecret(clientSecret) .Build(); var authResult = await app.AcquireTokenForClient(new [] { $"{audience}/.default" }).ExecuteAsync(); return authResult.AccessToken; }, $"https://login.microsoftonline.com/{tenantId}"); }
Buat objek HybridConnectionListener atau HybridConnectionClient dengan meneruskan URI koneksi hibrid dan penyedia token yang Anda buat di langkah sebelumnya.
Pendengar:
var listener = new HybridConnectionListener(hybridConnectionUri, tokenProvider);
Pengirim:
var sender = new HybridConnectionClient(hybridConnectionUri, tokenProvider);
Sampel
- Koneksi hibrid: .NET, Java, JavaScript
- WCF Relay: .NET
Langkah berikutnya
- Untuk mempelajari selengkapnya tentang Azure RBAC, lihat Apa itu kontrol akses berbasis peran Azure (Azure RBAC??
- Untuk mempelajari cara menetapkan dan mengelola penetapan peran Azure dengan Azure PowerShell, Azure CLI, atau REST API, lihat artikel berikut ini:
- Menambahkan atau menghapus penetapan peran Azure menggunakan Azure PowerShell
- Menambahkan atau menghapus penetapan peran Azure menggunakan Azure CLI
- Menambahkan atau menghapus penetapan peran Azure menggunakan REST API
- Menambahkan atau menghapus penetapan peran Azure menggunakan Templat Azure Resource Manager
Untuk mempelajari lebih lanjut tentang Azure Relay, lihat topik berikut.