Mengamankan layanan backend menggunakan autentikasi sertifikat klien di Azure API Management

BERLAKU UNTUK: Semua tingkatAN API Management

API Management memungkinkan Anda mengamankan akses ke layanan backend API menggunakan sertifikat klien dan autentikasi TLS bersama. Panduan ini memperlihatkan cara mengelola sertifikat dalam instans layanan Azure API Management menggunakan portal Microsoft Azure. Ini juga menjelaskan cara mengonfigurasi API untuk menggunakan sertifikat untuk mengakses layanan backend.

Anda juga dapat mengelola sertifikat API Management menggunakan API Management REST API.

Opsi sertifikat

API Management menyediakan dua opsi untuk mengelola sertifikat yang digunakan untuk mengamankan akses ke layanan backend:

  • Mereferensikan sertifikat yang dikelola di Azure Key Vault
  • Menambahkan file sertifikat langsung di API Management

Menggunakan sertifikat brankas kunci disarankan karena membantu meningkatkan keamanan API Management:

  • Sertifikat yang disimpan dalam brankas kunci dapat digunakan kembali di seluruh layanan
  • Kebijakan akses terperinci dapat diterapkan pada sertifikat yang disimpan dalam brankas kunci
  • Sertifikat yang diperbarui dalam brankas kunci secara otomatis diputar di API Management. Setelah pembaruan di brankas kunci, sertifikat dalam API Management diperbarui dalam waktu 4 jam. Anda juga dapat melakukan refresh pada sertifikat secara manual menggunakan portal Microsoft Azure atau melalui API REST manajemen.

Prasyarat

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

  • Jika Anda belum membuat instans layanan API Management, lihat Membuat instans layanan API Management.

  • Anda harus mengonfigurasi layanan backend Anda untuk autentikasi sertifikat klien. Untuk mengonfigurasi autentikasi sertifikat di Azure App Service, lihat artikel ini.

  • Anda memerlukan akses ke sertifikat dan kata sandi untuk manajemen dalam brankas kunci Azure atau mengunggah ke layanan API Management. Sertifikat harus dalam format PFX. Sertifikat yang ditandatangani sendiri diperbolehkan.

    Jika Anda menggunakan sertifikat yang ditandatangani sendiri:

Prasyarat untuk integrasi brankas kunci

  1. Jika Anda belum memiliki brankas kunci, buatlah. Untuk langkah-langkah dalam membuat brankas kunci, lihat Mulai Cepat: Membuat brankas kunci menggunakan portal Microsoft Azure.

    Untuk membuat atau mengimpor sertifikat ke brankas kunci, lihat Mulai Cepat: Mengatur dan mengambil sertifikat dari Azure Key Vault menggunakan portal Azure.

  2. Aktifkan identitas terkelola yang ditetapkan sistem atau ditetapkan pengguna di instans API Management.

Mengonfigurasi akses ke brankas kunci

  1. Di portal, arahkan ke brankas kunci Anda.

  2. Di menu sebelah kiri, pilih Konfigurasi akses, dan perhatikan Model izin yang dikonfigurasi.

  3. Bergantung pada model izin, konfigurasikan kebijakan akses brankas kunci atau akses Azure RBAC untuk identitas terkelola API Management.

    Untuk menambahkan kebijakan akses brankas kunci:

    1. Di menu sebelah kiri, pilih Kebijakan akses.
    2. Pada halaman Kebijakan akses, pilih + Buat.
    3. Pada tab Izin , di bawah Izin rahasia, pilih Dapatkan dan Daftar, lalu pilih Berikutnya.
    4. Pada tab Utama , Pilih prinsipal, cari nama sumber daya identitas terkelola Anda, lalu pilih Berikutnya. Jika Anda menggunakan identitas yang ditetapkan sistem, prinsipal adalah nama instans API Management Anda.
    5. Pilih Berikutnya lagi. Di tab Tinjau + buat, pilih Buat.

    Untuk mengonfigurasi akses Azure RBAC:

    1. Di menu sebelah kiri, pilih Kontrol akses (IAM).
    2. Pada halaman Kontrol akses (IAM), pilih Tambahkan penetapan peran.
    3. Pada tab Peran , pilih Pengguna Rahasia Key Vault.
    4. Pada tab Anggota, pilih Identitas> terkelola+ Pilih anggota.
    5. Pada halaman Pilih identitas terkelola, pilih identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna yang terkait dengan instans API Management Anda, lalu pilih Pilih.
    6. Pilih Tinjau + tetapkan.

Persyaratan untuk firewall Key Vault

Jika firewall Key Vault diaktifkan pada brankas kunci Anda, berikut ini adalah persyaratan tambahan:

  • Anda harus menggunakan identitas terkelola yang ditetapkan sistem oleh instans API Management untuk mengakses brankas kunci.

  • Di firewall Key Vault, aktifkan opsi Izinkan Layanan Microsoft Tepercaya untuk melewati firewall ini.

  • Pastikan bahwa alamat IP klien lokal Anda diizinkan untuk mengakses brankas kunci untuk sementara saat Anda memilih sertifikat atau rahasia untuk ditambahkan ke Azure API Management. Untuk informasi lebih lanjut, lihat Mengonfigurasi pengaturan jaringan Azure Key Vault.

    Setelah menyelesaikan konfigurasi, Anda dapat memblokir alamat klien Anda di firewall brankas kunci.

Persyaratan jaringan virtual

Jika instance Manajemen API diterapkan di jaringan virtual, konfigurasikan juga pengaturan jaringan berikut:

  • Aktifkan titik akhir layanan ke Azure Key Vault pada subnet API Management.
  • Mengonfigurasi aturan grup keamanan jaringan (NSG) untuk memungkinkan lalu lintas keluar ke tag layanan AzureKeyVault dan AzureActiveDirectory.

Untuk detailnya, lihat Konfigurasi jaringan saat menyiapkan Azure API Management di VNet.

Menambahkan sertifikat brankas kunci

Lihat Prasyarat untuk integrasi brankas kunci.

Penting

Saat menambahkan sertifikat brankas kunci ke instans API Management, Anda harus memiliki izin untuk mencantumkan rahasia dari brankas kunci.

Perhatian

Saat menggunakan sertifikat brankas kunci di API Management, berhati-hatilah untuk tidak menghapus sertifikat, brankas kunci, atau identitas terkelola yang digunakan untuk mengakses brankas kunci.

Untuk menambahkan sertifikat brankas kunci ke API Management:

  1. Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.

  2. Di bawah Keamanan, pilih Sertifikat.

  3. Pilih Sertifikat>+ Tambahkan.

  4. Di Id, masukkan nama pilihan Anda.

  5. Di Sertifikat, pilih Brankas kunci.

  6. Masukkan pengidentifikasi sertifikat brankas kunci, atau pilih Pilih untuk memilih sertifikat dari brankas kunci.

    Penting

    Jika Anda memasukkan pengidentifikasi sertifikat brankas kunci sendiri, pastikan bahwa brankas tersebut tidak memiliki informasi versi. Jika tidak, sertifikat tidak akan diputar secara otomatis di API Management setelah pembaruan di brankas kunci.

  7. Di Identitas klien, pilih identitas terkelola yang ditetapkan sistem atau identitas terkelola yang ditetapkan pengguna yang sudah ada. Pelajari cara menambahkan atau memodifikasi identitas terkelola di layanan API Management Anda.

    Catatan

    Identitas membutuhkan izin untuk mendapatkan dan mencantumkan sertifikat dari brankas kunci. Jika Anda belum mengonfigurasi akses ke brankas kunci, API Management akan meminta Anda sehingga dapat mengonfigurasi identitas secara otomatis dengan izin yang diperlukan.

  8. Pilih Tambahkan.

    Cuplikan layar menambahkan sertifikat brankas kunci ke API Management di portal.

  9. Pilih Simpan.

Mengunggah sertifikat

Untuk mengunggah sertifikat klien ke API Management:

  1. Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.

  2. Di bawah Keamanan, pilih Sertifikat.

  3. Pilih Sertifikat>+ Tambahkan.

  4. Di Id, masukkan nama pilihan Anda.

  5. Di Sertifikat, pilih Kustom.

  6. Telusuri untuk memilih file .pfx sertifikat, dan masukkan kata sandinya.

  7. Pilih Tambahkan.

    Cuplikan layar mengunggah sertifikat klien ke API Management di portal.

  8. Pilih Simpan.

Setelah sertifikat diunggah, sertifikat akan muncul di jendela Sertifikat. Jika Anda memiliki banyak sertifikat, buat catatan thumbprint sertifikat yang diinginkan untuk mengonfigurasi API untuk menggunakan sertifikat klien untuk autentikasi gateway.

Mengonfigurasi API untuk menggunakan sertifikat klien untuk autentikasi gateway

  1. Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.

  2. Di bawah API, pilih API.

  3. Pilih API dari daftar.

  4. Di tab Desain, pilih ikon editor di bagian Backend.

  5. Di Kredensial gateway, pilih Sertifikasi klien dan pilih sertifikat Anda dari menu tarik turun.

  6. Pilih Simpan.

    Menggunakan sertifikat klien untuk autentikasi gateway

Perhatian

Perubahan ini berlaku segera, dan panggilan ke operasi API itu akan menggunakan sertifikat untuk mengautentikasi pada server backend.

Tip

Ketika sertifikat ditentukan untuk autentikasi gateway untuk layanan backend API, sertifikat tersebut menjadi bagian dari kebijakan untuk API tersebut, dan dapat dilihat di editor kebijakan.

Menonaktifkan validasi rantai sertifikat untuk sertifikat yang ditandatangani sendiri

Jika Anda menggunakan sertifikat yang ditandatangani sendiri, Anda harus menonaktifkan validasi rantai sertifikat untuk API Management untuk berkomunikasi dengan sistem backend. Jika tidak, itu akan mengembalikan kode kesalahan 500. Untuk mengonfigurasi ini, Anda dapat menggunakan New-AzApiManagementBackend cmdlet PowerShell (untuk backend baru) atau Set-AzApiManagementBackend (untuk backend yang sudah ada) dan mengatur parameter -SkipCertificateChainValidation ke True.

$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context  $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true

Anda juga dapat menonaktifkan validasi rantai sertifikat dengan menggunakan BACKEND REST API.

Menghapus sertifikat klien

Untuk menghapus sertifikat, pilih sertifikat lalu pilih Hapus dari menu konteks (...).

Hapus sertifikat

Penting

Jika sertifikat direferensikan oleh kebijakan apa pun, maka layar peringatan ditampilkan. Untuk menghapus sertifikat, Anda harus terlebih dahulu menghapus sertifikat dari kebijakan apa pun yang dikonfigurasi untuk menggunakannya.

Langkah berikutnya