Menambahkan autentikasi saat 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 default, autentikasi Microsoft Entra yang Anda pilih di portal Azure tidak memberikan otorisasi terperintah. 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, autentikasi dasar, 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: 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 mengatur identitas ini satu kali untuk direktori 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 portal Azure, pilih MICROSOFT Entra ID.

  2. Konfirmasikan bahwa Anda berada di direktori yang sama dengan aplikasi web atau aplikasi API Anda.

    Tip

    Untuk berpindah direktori, pilih profil Anda dan pilih direktori lain. Atau, pilih Ringkasan>Ganti direktori.

  3. Pada menu direktori, di bagian Kelola, pilih Pendaftaran aplikasi>Pendaftaran baru.

    Daftar Semua pendaftaran menampilkan semua pendaftaran aplikasi di direktori Anda. Untuk hanya melihat pendaftaran aplikasi, pilih Aplikasi yang dimiliki.

    Screenshot showing Azure portal with Microsoft Entra instance,

  4. Berikan nama yang dapat dilihat pengguna untuk identitas aplikasi logika Anda. Pilih jenis akun yang didukung. Untuk URI Pengalihan, pilih Web, berikan URL unik tempat mengembalikan respons autentikasi, lalu pilih Daftar.

    Screenshot showing

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

    Screenshot showing the application identity for your logic app.

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

  6. Dari menu navigasi identitas aplikasi, pilih Ringkasan.

  7. Di panel Ringkasan, di bagian Esensial, salin dan simpan ID Aplikasi untuk digunakan sebagai "ID klien" untuk aplikasi logika Anda di bagian 3.

    Screenshot showing the application (client) ID underlined.

  8. Dari menu navigasi identitas aplikasi, pilih Sertifikat & rahasia.

  9. Di tab Rahasia klien, pilih Rahasia klien baru.

  10. Untuk Deskripsi, beri nama untuk rahasia Anda. Di bagian Masa berlaku, 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.

    Screenshot showing secret creation for application identity.

    Pada panel Sertifikat & rahasia , di bawah Rahasia klien, rahasia Anda sekarang muncul bersama dengan nilai rahasia dan ID rahasia.

    Screenshot showing secret value and secret ID with copy button for secret value selected.

  11. 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 IdP.

  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.

    Identitas aplikasi yang baru saja Anda buat untuk apl web atau aplikasi API Anda kini muncul di bagian IdP:

    Screenshot showing newly created application identity for web app or API app.

    Tip

    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 navigasi aplikasi web, pilih Autentikasi.

  2. Di bagian IdP, temukan identitas aplikasi yang sebelumnya Anda buat. Pilih nama untuk identitas aplikasi Anda.

    Screenshot showing newly created application identity with 'Overview' pane open.

  3. Setelah panel Ringkasan identitas aplikasi terbuka, temukan nilai untuk ID Aplikasi (klien) dan ID Direktori (penyewa). Salin dan simpan nilai untuk digunakan di Bagian 3.

    Screenshot showing application identity's 'Overview' pane open with 'Application (client) ID' value and 'Directory (tenant) ID' value underlined.

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

Menyiapkan autentikasi saat Anda menyebarkan 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 di templat penyebaran aplikasi dan juga 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:

Deploy to 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 penyewa Microsoft Entra
audience Ya GUID untuk sumber daya target yang ingin Anda akses, yang merupakan ID klien dari identitas aplikasi untuk aplikasi web atau aplikasi 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.

Misalnya:

{
   "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.

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 No Kata sandi untuk mengakses sertifikat klien (file PFX)
pfx Ya Isi sertifikat klien yang disandikan 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. 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.

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 default, autentikasi Microsoft Entra yang Anda aktifkan di portal Azure tidak memberikan otorisasi terperintah. 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