Gunakan proksi aplikasi Microsoft Entra untuk menyediakan akses aman ke Antarmuka Pemrograman Aplikasi (API) yang dihosting di cloud privat atau lokal

Gambaran Umum

Logika bisnis sering berada di Antarmuka Pemrograman Aplikasi (API) privat. API berjalan di lokal atau di cloud privat. Aplikasi Android, iOS, Mac, atau Windows native Anda perlu berinteraksi dengan titik akhir API untuk menggunakan data atau menyediakan interaksi pengguna. Proksi aplikasi Microsoft Entra dan Microsoft Authentication Library (MSAL) memungkinkan aplikasi asli Anda mengakses API cloud privat Anda dengan aman. Proksi aplikasi Microsoft Entra adalah solusi yang lebih cepat dan lebih aman daripada membuka port firewall dan mengontrol autentikasi dan otorisasi di lapisan aplikasi.

Petunjuk

Istilah "lokal" adalah istilah warisan yang berasal dari masa ketika server fisik terletak di tempat kantor perusahaan. Saat ini, banyak beban kerja yang dihost sendiri berjalan pada komputer virtual di pusat data. Istilah lokal dan cloud privat digunakan secara bergantian.

Artikel ini membimbing Anda dalam menyiapkan solusi proksi aplikasi Microsoft Entra untuk meng-host layanan API web yang dapat diakses oleh aplikasi asli.

Diagram berikut menunjukkan cara tradisional untuk menerbitkan API lokal. Pendekatan ini membutuhkan pembukaan port yang masuk 80 dan 443.

Diagram memperlihatkan arsitektur penerbitan API tradisional dengan port masuk 80 dan 443 terbuka ke internet.

Diagram berikut menunjukkan bagaimana Anda dapat menggunakan proksi aplikasi Microsoft Entra untuk menerbitkan API dengan aman tanpa membuka port masuk apa pun:

Diagram memperlihatkan arsitektur proksi aplikasi Microsoft Entra untuk penerbitan API aman tanpa port masuk yang diperlukan.

Proksi aplikasi Microsoft Entra membentuk tulang punggung solusi, bekerja sebagai titik akhir publik untuk akses API, dan menyediakan autentikasi dan otorisasi. Anda dapat mengakses API dari berbagai platform dengan menggunakan pustaka Microsoft Authentication Library (MSAL ).

Karena autentikasi dan otorisasi proksi aplikasi Microsoft Entra dibangun di atas ID Microsoft Entra, Anda dapat menggunakan Akses Bersyarat Microsoft Entra untuk memastikan hanya perangkat tepercaya yang dapat mengakses API yang diterbitkan melalui proksi aplikasi. Gunakan Microsoft Entra join atau Microsoft Entra hybrid join untuk desktop, dan dikelola oleh Intune untuk perangkat. Anda juga dapat memanfaatkan fitur Microsoft Entra ID P1 atau P2 seperti autentikasi multifaktor Microsoft Entra, dan keamanan microsoft Entra ID Protection yang didukung pembelajaran mesin.

Prasyarat

Untuk mengikuti panduan ini, Anda memerlukan:

Menerbitkan API melalui proksi aplikasi

Untuk menerbitkan API di luar intranet Anda melalui proksi aplikasi, Anda mengikuti pola yang sama seperti untuk menerbitkan aplikasi web. Untuk informasi selengkapnya, lihat Tutorial: Menambahkan aplikasi lokal untuk akses jarak jauh melalui proksi aplikasi di ID Microsoft Entra.

Untuk menerbitkan API web SecretAPI melalui proksi aplikasi:

  1. Buat dan publikasikan sampel proyek SecretAPI sebagai aplikasi web ASP.NET di komputer lokal atau intranet Anda. Pastikan Anda dapat mengakses aplikasi web secara lokal.

  2. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.

  3. Telusuri ke aplikasi Entra ID>Enterprise.

  4. Di bagian atas halaman Aplikasi perusahaan - Semua aplikasi , pilih Aplikasi baru.

  5. Pada halaman Telusuri Microsoft Entra Gallery , temukan bagian Aplikasi lokal dan pilih Tambahkan aplikasi lokal. Halaman Tambahkan aplikasi lokal Anda sendiri akan muncul.

  6. Jika Anda tidak memiliki konektor jaringan privat yang terinstal, Anda akan diminta untuk menginstalnya. Pilih Unduh konektor jaringan privat untuk mengunduh dan menginstal konektor.

  7. Tambahkan informasi di halaman Tambahkan aplikasi lokal Anda sendiri .

    1. Di samping Nama, masukkan SecretAPI.

    2. Di samping Url Internal, masukkan URL yang Anda gunakan untuk mengakses API dari dalam intranet Anda.

    3. Pastikan Pra-Autentikasi diatur ke ID Microsoft Entra.

    4. Pilih Buat, dan tunggu hingga aplikasi dibuat.

    Dialog pembuatan aplikasi perusahaan untuk aplikasi SecretAPI.

  8. Pada halaman Aplikasi perusahaan - Semua aplikasi , pilih aplikasi SecretAPI .

  9. Pada halaman SecretAPI - Gambaran Umum , pilih Properti di navigasi kiri.

  10. Anda tidak ingin API tersedia untuk pengguna akhir di panel MyApps , jadi atur Terlihat untuk pengguna ke Tidak di bagian bawah halaman Properti , lalu pilih Simpan.

    Cuplikan layar halaman properti di pusat admin Microsoft Entra memperlihatkan tombol Terlihat oleh pengguna.

API web sekarang diterbitkan melalui proksi aplikasi Microsoft Entra. Selanjutnya, tambahkan pengguna yang dapat mengakses aplikasi.

  1. Pada halaman SecretAPI - Gambaran Umum , pilih Pengguna dan grup di navigasi kiri.

  2. Pada halaman Pengguna dan grup , pilih Tambahkan pengguna/grup.

  3. Pada halaman Tambahkan penugasan , pilih Pengguna dan grup.

  4. Pada halaman Pengguna dan grup , cari dan pilih pengguna yang dapat mengakses aplikasi, termasuk setidaknya diri Anda sendiri. Setelah memilih semua pengguna, pilih Pilih.

    Cuplikan layar halaman pengguna dan grup di pusat admin Microsoft Entra memperlihatkan pengguna yang ditetapkan.

  5. Pada halaman Tambahkan Penugasan , pilih Tetapkan.

Catatan

API yang menggunakan autentikasi Windows terintegrasi mungkin memerlukan konfigurasi Delegasi yang Dibatasi Kerberos.

Mendaftarkan aplikasi native dan memberikan akses ke API

Aplikasi native adalah program yang dikembangkan untuk digunakan pada platform atau perangkat tertentu. Sebelum aplikasi asli Anda dapat terhubung dan mengakses API, Anda harus mendaftarkannya di ID Microsoft Entra. Langkah-langkah berikut menunjukkan cara mendaftarkan aplikasi asli dan memberinya akses ke API web yang Anda terbitkan melalui proksi aplikasi.

Untuk mendaftarkan aplikasi asli bernama AppProxyNativeAppSample:

  1. Masuk ke pusat admin Microsoft Entra sebagai setidaknya Administrator Aplikasi.

  2. Jelajahi ke Entra ID>Pendaftaran Aplikasi.

  3. Pilih Pendaftaran baru.

  4. Masukkan informasi di halaman Daftarkan aplikasi .

    1. Di bawah Nama, masukkan AppProxyNativeAppSample.

    2. Di bawah Jenis akun yang didukung, pilih Akun hanya di direktori organisasi ini (hanya Contoso - Penyewa tunggal).

    3. Di bawah URL Pengalihan, drop-down dan pilih Klien publik/asli (seluler & desktop), lalu masukkan https://login.microsoftonline.com/common/oauth2/nativeclient.

    4. Pilih Daftar, dan tunggu aplikasi berhasil didaftarkan.

      Formulir pendaftaran aplikasi memperlihatkan konfigurasi AppProxyNativeAppSample.

Aplikasi AppProxyNativeAppSample ini sekarang terdaftar di ID Microsoft Entra. Berikan akses aplikasi asli Anda ke SecretAPI API web:

  1. Pada halaman Pendaftaran aplikasi , pilih aplikasi AppProxyNativeAppSample .

  2. Pada halaman AppProxyNativeAppSample , pilih izin API di navigasi kiri.

  3. Pada halaman Izin API , pilih Tambahkan izin.

  4. Pada halaman Permintaan izin API pertama, pilih tab API yang digunakan organisasi saya , lalu cari dan pilih SecretAPI.

  5. Pada halaman Minta izin API berikutnya, pilih kotak centang di samping user_impersonation, lalu pilih Tambahkan izin.

  6. Kembali ke halaman izin API , Anda dapat memilih Berikan persetujuan admin untuk Contoso untuk mencegah pengguna lain harus menyetujui aplikasi secara individual.

Mengonfigurasi kode aplikasi native

Langkah terakhir adalah mengonfigurasi aplikasi native. Kode harus ditambahkan ke Form1.cs file di NativeClient aplikasi sampel. Kode menggunakan pustaka MSAL untuk memperoleh token. Token meminta panggilan API dan melampirkannya ke header dalam permintaan. Token dilampirkan sebagai sertifikat pembawa. Untuk informasi selengkapnya tentang MSAL, lihat Menambahkan MSAL ke proyek Anda dan Menambahkan referensi ke MSAL.

  1. Di Form1.cs, tambahkan namespace using Microsoft.Identity.Client; ke kode.

  2. Edit kode aplikasi asli dalam konteks autentikasi Microsoft Authentication Library (MSAL) untuk menyertakan sampel kode yang disesuaikan ini.

Konfigurasikan aplikasi asli untuk menyambungkan ke MICROSOFT Entra ID dan memanggil API menggunakan proksi aplikasi. Kemudian, perbarui nilai tempat penampung dalam file App.config di NativeClient sample app dengan nilai dari ID Microsoft Entra.

  1. Tempelkan ID Direktori (penyewa) di <add key="ida:Tenant" value="" /> bidang . Anda dapat menemukan dan menyalin nilai ini (GUID) dari halaman Gambaran Umum salah satu aplikasi Anda.

  2. Tempelkan ID Aplikasi AppProxyNativeAppSample (klien) di <add key="ida:ClientId" value="" /> bidang . Anda dapat menemukan dan menyalin nilai ini (GUID) dari halaman Gambaran Umum AppProxyNativeAppSample, di navigasi kiri di bawah Kelola.

  3. Tempelkan URI Pengalihan di kolom <add key="ida:RedirectUri" value="" /> AppProxyNativeAppSample. Anda dapat menemukan dan menyalin nilai ini (URI) dari halaman Autentikasi AppProxyNativeAppSample, di navigasi kiri di bawah Kelola. Langkah ini bersifat opsional karena MSAL menggunakan metode PublicClientApplicationBuilder.WithDefaultRedirectUri() untuk menyisipkan Pengidentifikasi Sumber Daya Seragam (URI) balasan yang direkomendasikan.

  4. Masukkan URI ID Aplikasi dari SecretAPI di bidang <add key="todo:TodoListResourceId" value="" />. Nilainya sama dengan todo:TodoListBaseAddress. Nilai URI terletak di halaman SecretAPI aplikasi. Lihat di navigasi kiri di bawah Kelola.

  5. Tempelkan URL Halaman Beranda SecretAPI ke dalam bidang . Anda dapat menemukan dan menyalin nilai ini (URL) dari halaman SecretAPI Branding & properties , di navigasi kiri di bawah Kelola.

Catatan

Jika solusi tidak membangun dan melaporkan kesalahan invalid Resx file, di Penjelajah Solusi, perluas Properti, klik kanan Resources.resx, lalu pilih Tampilkan Kode. Baris komentar 121 hingga 123.

Setelah mengonfigurasi parameter, buat dan jalankan aplikasi native. Saat Anda memilih tombol Masuk , aplikasi memungkinkan Anda masuk, lalu menampilkan layar sukses untuk mengonfirmasi bahwa aplikasi berhasil tersambung ke SecretAPI.

Pesan sukses menunjukkan API Rahasia Berhasil dengan tombol OK.

Langkah berikutnya