Bagikan melalui


Menambahkan autentikasi Microsoft Entra untuk memanggil API kustom dari Azure Logic Apps

Untuk meningkatkan keamanan panggilan ke API, Anda dapat menyiapkan autentikasi Microsoft Entra melalui portal Azure sehingga Anda tidak perlu memperbarui kode Anda. Atau, Anda dapat meminta dan menerapkan autentikasi melalui kode API Anda.

Anda dapat menambahkan autentikasi dengan cara berikut:

  • Tidak ada perubahan kode: Lindungi API Anda dengan ID Microsoft Entra melalui portal Azure, sehingga Anda tidak perlu memperbarui kode atau menyebarkan ulang API Anda.

    Catatan

    Secara bawaan, autentikasi Microsoft Entra yang Anda pilih di portal Azure tidak memberikan otorisasi yang terperinci. Misalnya, autentikasi ini mengunci API Anda hanya ke penyewa tertentu, bukan ke pengguna atau aplikasi tertentu.

  • Perbarui kode API Anda: Lindungi API Anda dengan memberlakukan autentikasi sertifikat atau autentikasi Microsoft Entra melalui kode.

Autentikasi panggilan ke API Anda tanpa mengubah kode

Berikut adalah langkah-langkah umum untuk metode ini:

  1. Buat dua identitas aplikasi Microsoft Entra (pendaftaran aplikasi): satu untuk sumber daya aplikasi logika Anda dan satu untuk aplikasi web Anda (atau aplikasi API).

  2. Untuk mengautentikasi panggilan ke API Anda, gunakan kredensial (ID klien dan rahasia) untuk perwakilan layanan yang terkait dengan identitas aplikasi Microsoft Entra untuk aplikasi logika Anda.

  3. Sertakan ID aplikasi dalam definisi alur kerja aplikasi logika Anda.

Bagian 1: Membuat identitas aplikasi Microsoft Entra untuk aplikasi logika Anda

Sumber daya aplikasi logika Anda menggunakan identitas aplikasi Microsoft Entra ini untuk mengautentikasi terhadap ID Microsoft Entra. Anda hanya perlu menyiapkan identitas ini satu kali untuk penyewa Anda. Misalnya, Anda dapat memilih untuk menggunakan identitas yang sama untuk semua aplikasi logika Anda, meskipun Anda dapat membuat identitas unik untuk setiap aplikasi logika. Anda dapat menyiapkan identitas ini di portal Azure atau menggunakan PowerShell.

  1. Di kotak pencarian portal Microsoft Azure , temukan dan pilih ID Microsoft Entra.

  2. Pastikan bahwa Anda berada di tenant yang sama dengan aplikasi web atau aplikasi API Anda.

    Petunjuk

    Untuk beralih penyewa, dari bilah judul Azure, buka profil Anda, dan pilih Alihkan direktori.

  3. Pada menu sumber daya penyewa, di bawah Kelola, pilih Pendaftaran aplikasi.

    Halaman Pendaftaran aplikasi menampilkan semua pendaftaran aplikasi di penyewa Anda. Untuk hanya melihat pendaftaran aplikasi, pilih Aplikasi yang dimiliki.

  4. Pada toolbar, pilih Pendaftaran baru.

    Cuplikan layar memperlihatkan portal Microsoft Azure dengan penyewa Microsoft Entra, panel Pendaftaran aplikasi, dan perintah yang dipilih untuk Pendaftaran baru.

  5. Pada halaman Daftarkan aplikasi , ikuti langkah-langkah berikut:

    1. Untuk Nama, berikan nama yang ramah dan menghadap pengguna untuk identitas aplikasi aplikasi logika Anda.

    2. Di bawah Jenis akun yang didukung, pilih opsi yang paling tepat menjelaskan jenis akun yang dapat menggunakan identitas aplikasi atau mendapatkan akses ke API Anda.

    3. Di bawah Pengalihan URI, pilih Web sebagai platform. Di samping opsi ini, berikan URL unik untuk lokasi guna mengembalikan respons autentikasi.

      Cuplikan layar memperlihatkan panel untuk mendaftarkan aplikasi dengan nama identitas aplikasi dan URL tempat mengirim respons autentikasi.

    4. Setelah selesai, pilih Daftar.

    Tab Aplikasi yang dimiliki sekarang menunjukkan identitas aplikasi yang Anda buat. Jika identitas ini tidak muncul, di toolbar, pilih Refresh.

    Cuplikan layar memperlihatkan identitas aplikasi untuk aplikasi logika Anda.

  6. Dari daftar pendaftaran aplikasi, pilih identitas aplikasi baru Anda.

  7. Dari menu navigasi identitas aplikasi, pilih Ringkasan.

  8. Pada halaman Gambaran Umum , di bagian Esensial, salin dan simpan ID Aplikasi (klien) untuk digunakan sebagai ID klien untuk aplikasi logika Anda di Bagian 3.

    Cuplikan layar memperlihatkan ID aplikasi (klien) yang disorot.

  9. Dari menu identitas aplikasi, di bawah Kelola, pilih Sertifikat & rahasia.

  10. Pada halaman Rahasia klien, pilih Rahasia klien baru.

  11. Pada panel Tambahkan rahasia klien , untuk Deskripsi, berikan nama untuk rahasia Anda. Untuk Kedaluwarsa, pilih durasi untuk rahasia Anda. Setelah selesai, pilih Tambahkan.

    Rahasia yang Anda buat berfungsi sebagai kata sandi atau "rahasia" identitas aplikasi untuk aplikasi logika Anda.

    Cuplikan layar memperlihatkan pembuatan rahasia untuk identitas aplikasi.

    Pada halaman Sertifikat & rahasia , pada tab Rahasia klien , rahasia Anda sekarang muncul bersama dengan nilai rahasia dan ID rahasia.

    Cuplikan layar memperlihatkan nilai rahasia dan ID rahasia dengan tombol salin untuk nilai rahasia dipilih.

  12. Salin nilai rahasia untuk digunakan nanti. Saat mengonfigurasi aplikasi logika Anda di Bagian 3, Anda menentukan nilai ini sebagai "rahasia" atau kata sandi.

Bagian 2: Membuat identitas aplikasi Microsoft Entra untuk aplikasi web atau aplikasi API Anda

Jika aplikasi web atau aplikasi API Anda sudah disebarkan, Anda dapat mengaktifkan autentikasi dan membuat identitas aplikasi di portal Azure. Jika tidak, Anda dapat mengaktifkan autentikasi saat menyebarkan dengan template Azure Resource Manager.

Membuat identitas aplikasi untuk aplikasi web atau aplikasi API yang disebarkan di portal Azure

  1. Di portal Azure, temukan dan pilih aplikasi web atau aplikasi API Anda.

  2. Di Pengaturan, pilih Autentikasi>Tambahkan penyedia identitas.

  3. Setelah panel Tambahkan penyedia identitas terbuka, pada tab Dasar , dari daftar Penyedia identitas, pilih Microsoft untuk menggunakan identitas Microsoft Entra, lalu pilih Tambahkan.

  4. Sekarang, buat identitas aplikasi untuk aplikasi web atau aplikasi API Anda seperti berikut:

    1. Untuk Jenis pendaftaran aplikasi, pilih Buat pendaftaran aplikasi baru.

    2. Untuk Nama, beri nama untuk identitas aplikasi Anda.

    3. Untuk Jenis akun yang didukung, pilih jenis akun yang sesuai untuk skenario Anda.

    4. Untuk Membatasi akses, pilih Memerlukan autentikasi.

    5. Untuk Permintaan yang tidak diautentikasi, pilih opsi berdasarkan skenario Anda.

    6. Setelah selesai, pilih Tambahkan.

    Di bagian Penyedia identitas , identitas aplikasi baru untuk aplikasi web atau aplikasi API Anda sekarang muncul:

    Cuplikan layar memperlihatkan identitas aplikasi yang baru dibuat untuk aplikasi web atau aplikasi API.

    Petunjuk

    Jika identitas aplikasi tidak muncul, di toolbar, pilih Refresh.

Sekarang Anda harus menemukan ID aplikasi (klien) dan ID penyewa untuk identitas aplikasi yang baru saja Anda buat untuk aplikasi web atau aplikasi API. Anda menggunakan ID ini di Bagian 3. Jadi, lanjutkan dengan langkah berikut untuk portal Azure.

Temukan ID klien dan ID penyewa identitas aplikasi untuk aplikasi web atau aplikasi API Anda di portal Azure

  1. Pada menu aplikasi web Anda, di bawah Kelola, pilih Autentikasi.

  2. Di bagian Penyedia identitas , temukan identitas aplikasi yang anda buat sebelumnya. Pilih nama identitas aplikasi.

    Cuplikan layar memperlihatkan halaman Autentikasi terbuka untuk identitas aplikasi yang baru dibuat.

  3. Pada halaman Gambaran Umum, temukan nilai untuk ID Aplikasi (klien) dan ID Direktori (penyewa). Salin dan simpan nilai untuk digunakan di Bagian 3.

    Cuplikan layar memperlihatkan halaman Gambaran Umum yang terbuka untuk identitas aplikasi web dan nilai yang dipilih untuk ID aplikasi (klien) dan ID direktori (penyewa).

    Anda juga dapat menggunakan ID penyewa GUID dalam templat penyebaran aplikasi web atau aplikasi API Anda, jika perlu. GUID ini adalah GUID penyewa khusus Anda ("ID penyewa") dan akan muncul di URL ini: https://sts.windows.net/<tenant-GUID>

Siapkan autentikasi saat Anda melakukan penerapan dengan templat Azure Resource Manager

Jika Anda menggunakan templat Azure Resource Manager (templat ARM), Anda masih harus membuat identitas aplikasi Microsoft Entra untuk aplikasi web atau aplikasi API yang berbeda dari identitas aplikasi untuk aplikasi logika Anda. Untuk membuat identitas aplikasi, lalu menemukan ID klien dan ID penyewa, ikuti langkah-langkah sebelumnya di Bagian 2 untuk portal Azure. Anda akan menggunakan ID klien dan ID penyewa dalam templat penyebaran aplikasi Anda, serta untuk Bagian 3.

Penting

Saat membuat identitas aplikasi Microsoft Entra untuk aplikasi web atau aplikasi API, Anda harus menggunakan portal Azure, bukan PowerShell. Commandlet PowerShell tidak mengatur izin yang diperlukan untuk memasukkan pengguna ke situs web.

Setelah Anda mendapatkan ID klien dan ID penyewa, sertakan ID ini sebagai subsumber daya aplikasi web atau aplikasi API Anda di template penyebaran Anda:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Untuk menyebarkan aplikasi web kosong dan aplikasi logika secara otomatis bersama dengan autentikasi Microsoft Entra, lihat templat lengkap di sini, atau pilih tombol Sebarkan ke Azure berikut:

Sebarkan ke Azure

Bagian 3: Isi bagian Otorisasi di aplikasi logika Anda

Templat sebelumnya sudah menyiapkan bagian otorisasi ini, tetapi jika Anda langsung menulis definisi aplikasi logika, Anda harus menyertakan bagian otorisasi lengkap.

  1. Buka definisi aplikasi logika Anda pada tampilan kode.

  2. Buka definisi tindakan HTTP, temukan bagian Otorisasi, lalu sertakan properti berikut:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Properti Wajib Deskripsi
tenant Ya GUID untuk pengguna Microsoft Entra.
audience Ya GUID untuk sumber daya target yang ingin Anda akses adalah ID klien dari identitas aplikasi untuk aplikasi web atau API Anda.
clientId Ya GUID untuk klien yang meminta akses, yang merupakan ID klien dari identitas aplikasi untuk aplikasi logika Anda.
secret Ya Rahasia atau kata sandi dari identitas aplikasi untuk klien yang meminta token akses.
type Ya Jenis Autentikasi. Untuk autentikasi ActiveDirectoryOAuth, nilainya adalah ActiveDirectoryOAuth.

Contohnya:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

Mengamankan panggilan API melalui kode

Autentikasi sertifikat

Untuk memvalidasi permintaan masuk dari alur kerja aplikasi logika Anda ke aplikasi web atau aplikasi API, Anda dapat menggunakan sertifikat klien. Untuk menyiapkan kode Anda, pelajari cara mengonfigurasi autentikasi timbal balik TLS.

Penting

Selalu amankan dan lindungi data sensitif dan pribadi, seperti kredensial, rahasia, kunci akses, string koneksi, sertifikat, thumbprint, dan informasi serupa dengan tingkat keamanan tertinggi yang tersedia atau didukung.

Pastikan Anda menyimpan informasi tersebut dengan aman menggunakan ID Microsoft Entra dan Azure Key Vault. Jangan hardcode informasi ini, bagikan dengan pengguna lain, atau simpan dalam teks biasa di mana pun orang lain dapat mengakses. Siapkan rencana untuk mengganti atau mencabut rahasia jika rahasia tersebut mungkin telah disusupi. Untuk informasi selengkapnya, lihat sumber daya berikut ini:

Di bagian Otorisasi, sertakan properti berikut:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Properti Wajib Deskripsi
type Ya Jenis Autentikasi. Untuk sertifikat klien TLS/SSL, nilainya harus ClientCertificate.
password Tidak Kata sandi untuk mengakses sertifikat klien (file PFX).
pfx Ya Konten sertifikat klien yang dikodekan base64 (file PFX).

Autentikasi dasar

Untuk memvalidasi permintaan masuk dari aplikasi logika Anda ke aplikasi web atau aplikasi API, Anda dapat menggunakan autentikasi dasar, seperti nama pengguna dan kata sandi. Meskipun autentikasi dasar adalah pola umum, dan Anda dapat menggunakan autentikasi ini dalam bahasa apa pun yang digunakan untuk membangun aplikasi web atau aplikasi API Anda, selalu gunakan tingkat autentikasi terbaik yang tersedia atau didukung.

Peringatan

Microsoft menyarankan agar tidak menggunakan alur berikut untuk autentikasi dan otorisasi:

  • Kredensial Kata Sandi Pemilik Sumber Daya (ROPC) untuk OAuth 2.0

    Alur ini memungkinkan Anda masuk ke aplikasi dengan kata sandi. Alur tidak kompatibel dengan autentikasi multifaktor (MFA), membutuhkan tingkat kepercayaan yang sangat tinggi pada aplikasi, dan membawa risiko yang tidak ada di alur lain. Gunakan alur ini hanya jika alur lain yang lebih aman tidak didukung atau tersedia.

    Untuk informasi selengkapnya, lihat Info Masuk Kata Sandi Pemilik Sumber Daya Oauth 2.0.

  • Alur pemberian izin implisit untuk OAuth 2.0

    Alur berbasis token ini ditujukan untuk aplikasi web tradisional di mana server memiliki kontrol yang lebih aman atas pemrosesan POST data dan sering digunakan dengan alur kode otorisasi. Karena bagaimana alur ini menangani dan mengembalikan token ID atau token akses, alur memerlukan tingkat kepercayaan yang sangat tinggi pada aplikasi dan membawa risiko yang tidak ada di alur lain. Gunakan alur ini hanya ketika alur lain yang lebih aman tidak didukung atau tersedia.

    Untuk informasi selengkapnya, lihat Alur pemberian izin implisit OAuth 2.0.

Di bagian Otorisasi, sertakan properti berikut:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Properti Wajib Deskripsi
type Ya Jenis autentikasi yang ingin Anda gunakan. Untuk autentikasi dasar, nilainya harus **Basic**.
username Ya Nama pengguna yang ingin Anda gunakan untuk autentikasi.
password Ya Kata sandi yang ingin Anda gunakan untuk autentikasi.

Autentikasi Microsoft Entra melalui kode

Secara bawaan, autentikasi Microsoft Entra yang Anda aktifkan di portal Azure tidak memberikan otorisasi rinci. Misalnya, autentikasi ini mengunci API Anda hanya ke penyewa tertentu, bukan ke pengguna atau aplikasi tertentu.

Untuk membatasi akses API ke aplikasi logika Anda melalui kode, ekstrak header yang memiliki token web JSON (JWT). Periksa identitas penelepon, dan tolak permintaan yang tidak cocok.

Langkah berikutnya