Bagikan melalui


Menerbitkan Api Microsoft Azure Data Manager for Energy ke gateway API yang aman

Azure API Management berfungsi sebagai perantara penting antara aplikasi klien dan API backend. Ini memudahkan klien untuk mengakses layanan dengan menyembunyikan detail teknis dan memberikan kontrol organisasi atas keamanan API.

Dengan menerbitkan Api Azure Data Manager for Energy melalui Azure API Management, Anda dapat menggunakan kemampuan Azure Data Manager for Energy Private Link untuk lalu lintas privat dan menghapus akses publik langsung sepenuhnya ke instans Anda.

Artikel ini menjelaskan cara menyiapkan Azure API Management untuk mengamankan Api Azure Data Manager for Energy.

Prasyarat

Anda memerlukan komponen, alat, dan informasi berikut yang tersedia untuk menyelesaikan panduan ini:

  • Jaringan virtual dengan dua subnet tersedia, satu untuk titik akhir privat Azure Data Manager for Energy dan yang lainnya untuk injeksi jaringan virtual Azure API Management.

  • Azure Data Manager for Energy dikonfigurasi dengan tautan privat yang disebarkan ke subnet.

  • Azure API Management disediakan dan disebarkan ke jaringan virtual menggunakan injeksi jaringan virtual. Pilih Mode eksternal , atau lihat bagian Opsi lain untuk Mode internal .

  • Editor kode seperti Visual Studio Code untuk memodifikasi spesifikasi Azure Data Manager for Energy OpenAPI untuk setiap API yang diterbitkan.

  • Unduh spesifikasi Azure Data Manager for Energy OpenAPI dari repositori GitHub adme-samples . Navigasi ke direktori rest-apis dan pilih versi yang sesuai untuk aplikasi Anda.

  • Dari pendaftaran aplikasi untuk aplikasi Azure Data Manager for Energy yang digunakan pada waktu provisi, perhatikan ID Penyewa dan ID Klien:

    Cuplikan layar detail Pendaftaran Aplikasi.

Menyiapkan instans API Management

Gunakan langkah-langkah berikut untuk membuat perubahan konfigurasi pada instans Azure API Management Anda:

  1. Dari panel Semua sumber daya , pilih instans Azure API Management yang digunakan untuk panduan ini.

  2. Navigasi ke halaman Pengaturan produk dengan memilihnya dari pengelompokan pengaturan API:

    Cuplikan layar tab Produk pada instans API Management.

  3. Pada halaman Produk, pilih tombol Tambahkan untuk membuat Produk baru. Produk Azure API Management memungkinkan Anda membuat pengelompokan API yang digabungkan secara longgar yang dapat diatur dan dikelola bersama-sama. Kami membuat Produk untuk Api Azure Data Manager for Energy kami.

  4. Pada halaman Tambahkan produk, masukkan nilai yang dijelaskan dalam tabel berikut ini untuk membuat produk.

    Cuplikan layar halaman Tambahkan produk pada instans API Management.

    Pengaturan Nilai
    Nama Tampilan "Azure Data Manager untuk Produk Energi"
    ID "adme-product"
    Deskripsi Masukkan deskripsi yang menunjukkan kepada pengembang API mana yang kami kelompokkan
    Diterbitkan Centang kotak ini untuk menerbitkan Produk yang kami buat
    Membutuhkan langganan Centang kotak ini untuk memberikan otorisasi dasar untuk API kami
    Membutuhkan persetujuan Pilih secara opsional jika Anda ingin administrator meninjau dan menerima atau menolak upaya langganan ke produk ini. Jika tidak dipilih, upaya langganan akan disetujui secara otomatis.
    Batas jumlah langganan Secara opsional, batasi jumlah beberapa langganan simultan.
    Istilah hukum Secara opsional tentukan ketentuan penggunaan untuk produk yang harus diterima pelanggan untuk menggunakan produk.
    API Kita dapat mengabaikan fitur ini. Kami mengaitkan API nanti di artikel ini
  5. Pilih Buat untuk membuat produk baru.

  6. Setelah pembuatan produk selesai, portal mengembalikan Anda ke halaman Produk. Pilih produk Azure Data Manager for Energy Product kami yang baru dibuat untuk masuk ke halaman Sumber daya produk. Pilih item menu Pengaturan kebijakan dari menu pengaturan.

    Cuplikan layar halaman konfigurasi Kebijakan Produk pada instans API Management.

  7. Pada panel Pemrosesan masuk, pilih <ikon /> , yang memungkinkan Anda mengubah kebijakan untuk produk. Anda menambahkan tiga set kebijakan untuk meningkatkan keamanan solusi:

    • Memvalidasi Token ID Entra untuk memastikan permintaan yang tidak diaauthenticated tertangkap di gateway API
    • Kuota dan Batas Tarif untuk mengontrol tingkat permintaan dan total permintaan/data yang ditransfer
    • Atur Header untuk menghapus header yang dikembalikan oleh API backend, yang mungkin mengungkapkan detail sensitif ke pelaku jahat potensial
  8. Tambahkan kebijakan validate-azure-ad-token berikut ke konfigurasi kami dalam tag masuk dan di bawah tag dasar. Pastikan untuk memperbarui templat dengan detail aplikasi ID Microsoft Entra yang dicatat dalam prasyarat.

    <validate-azure-ad-token tenant-id="INSERT_TENANT_ID">
        <client-application-ids>
            <application-id>INSERT_APP_ID</application-id>
        </client-application-ids>
    </validate-azure-ad-token>
    
  9. Di bawah kebijakan validate-azure-ad-token, tambahkan kebijakan kuota dan batas tarif berikut. Perbarui nilai konfigurasi kebijakan yang sesuai untuk konsumen Anda.

    <rate-limit calls="20" renewal-period="90" remaining-calls-variable-name="remainingCallsPerSubscription"/>
    <quota calls="10000" bandwidth="40000" renewal-period="3600" />
    
  10. Ke bagian keluar editor kebijakan dan di bawah tag dasar, tambahkan kebijakan set-header berikut.

    <set-header name="x-envoy-upstream-service-time" exists-action="delete" />
    <set-header name="x-internal-uri-pattern" exists-action="delete" />
    
  11. Pilih Simpan untuk menerapkan perubahan.

    Cuplikan layar dokumen kebijakan lengkap.

  12. Navigasikan kembali ke sumber daya API Management di portal Azure. Pilih item menu Backend dan pilih tombol + Tambahkan.

    Cuplikan layar halaman Backend.

  13. Pada modal Backend, masukkan nilai yang dijelaskan dalam tabel berikut untuk membuat backend.

    Pengaturan Nilai
    Nama "adme-backend"
    Deskripsi Masukkan deskripsi yang menunjukkan kepada pengembang bahwa backend ini terkait dengan Api Azure Data Manager for Energy
    Jenis URL Kustom
    Runtime URL Masukkan _ex Azure Data Manager for Energy URI Anda. https://INSERT_ADME_NAME.energy.azure.com/
    Memvalidasi rantai sertifikat Dicentang
    Memvalidasi nama sertifikat Dicentang

    Cuplikan layar modal Backend.

  14. Pilih Buat untuk membuat backend. Backend yang baru dibuat ini akan digunakan di bagian berikutnya saat kami menerbitkan API.

Mengimpor Azure Data Manager untuk API Energi

Gunakan langkah-langkah berikut untuk mengimpor, mengonfigurasi, dan menerbitkan Api Azure Data Manager for Energy ke gateway Azure API Management:

  1. Navigasikan kembali ke instans Azure API Management yang digunakan di bagian terakhir.

  2. Pilih item menu API dari menu, lalu pilih tombol + Tambahkan API .

  3. Pilih OpenAPI di bawah judul Buat dari definisi .

    Cuplikan layar impor OpenAPI.

  4. Di jendela Buat dari modal spesifikasi OpenAPI, pilih tombol Penuh .

  5. Temukan spesifikasi OpenAPI yang Anda unduh sebagai bagian dari prasyarat dan buka spesifikasi Skema menggunakan editor kode pilihan Anda. Cari kata "server" dan catat URL server di file ex. /api/schema-service/v1/.

  6. Pilih Pilih file dan pilih spesifikasi API Skema . Ketika unggahan selesai, jendela modal memuat beberapa nilai dari spesifikasi.

  7. Untuk bidang lain, masukkan nilai yang dijelaskan dalam tabel berikut ini:

    Pengaturan Nilai
    Menyertakan parameter kueri yang diperlukan dalam templat operasi Dicentang
    Nama tampilan Masukkan nama tampilan yang masuk akal bagi pengembang aplikasi misalnya. Azure Data Manager for Energy Schema Service
    Nama API Management menyarankan nama kebab-cased. Secara opsional, nama dapat diubah tetapi harus unik untuk instans
    Deskripsi Spesifikasi OpenAPI mungkin menentukan deskripsi, jika demikian deskripsi secara otomatis terisi. Secara opsional, perbarui deskripsi per kasus penggunaan Anda.
    Skema URL Pilih "Keduanya"
    Akhiran URL API Masukkan akhiran untuk semua Api Azure Data Manager for Energy (mis. adme). Kemudian masukkan URL server dari langkah 5. Nilai akhir akan terlihat seperti /adme/api/schema-service/v1/. Akhiran memungkinkan kami mematuhi klien dan kit pengembangan perangkat lunak yang ada yang biasanya terhubung ke Api Azure Data Manager for Energy secara langsung
    Tag Secara opsional masukkan tag
    Produk Pilih produk "Azure Data Manager for Energy" yang dibuat di bagian sebelumnya

    Penting

    Validasi akhiran URL API, ini adalah penyebab umum kesalahan dalam menerbitkan API Azure Data Manager for Energy

  8. Pilih Buat untuk membuat fasad API.

    Cuplikan layar Spesifikasi Buat dari OpenAPI.

  9. Pilih fasad API Skema yang baru dibuat dari daftar API dan pilih pada Semua operasi pada daftar operasi. Pada panel Pemrosesan masuk, pilih< ikon />untuk mengedit dokumen kebijakan.

    Cuplikan layar kebijakan API.

  10. Untuk mengonfigurasi API, tambahkan dua set kebijakan:

    • Atur Layanan Backend untuk merutekan permintaan ke Azure Data Manager untuk instans Energi
    • Tulis ulang URI untuk menghapus awalan adme dan membangun permintaan ke API backend. Pernyataan kebijakan ini menggunakan ekspresi kebijakan untuk menambahkan nilai templat Url Operasi saat ini secara dinamis ke URL server kami.
  11. Catat URL server dari langkah 5. Di bawah tag dasar , di bagian masuk , sisipkan dua pernyataan kebijakan berikut.

    <set-backend-service backend-id="adme-backend" />
    
    <!-- replace the '/api/schema-service/v1' with the server URL for this API specification you noted in step 5 -->
    <rewrite-uri template="@{return "/api/schema-service/v1"+context.Operation.UrlTemplate;}" />
    
  12. Pilih Simpan untuk menerapkan perubahan.

  13. Uji API dengan memilih operasi info Versi GET dari daftar operasi. Lalu pilih tab Uji untuk menavigasi ke Azure API Management Test Console.

  14. Masukkan nilai yang dijelaskan dalam tabel berikut ini. Buat token autentikasi untuk Azure Data Manager for Energy Anda. Pilih Kirim untuk menguji API.

    Pengaturan Nilai
    data-partition-id ID partisi data untuk instans Azure Data Manager for Energy Anda
    Produk Pilih produk Azure Data Manager for Energy yang dibuat sebelumnya
    Authorization "Pembawa" dan token autentikasi yang Anda buat

    Cuplikan layar Buat dari Api Test Console.

  15. Jika API dikonfigurasi dengan benar, Anda akan melihat respons HTTP 200 - OK yang terlihat mirip dengan cuplikan layar. Jika tidak, periksa bagian Pemecahan Masalah.

  16. Ulangi langkah-langkah di atas untuk setiap Azure Data Manager for Energy API dan spesifikasi terkait.

Pemecahan Masalah

Selama pengujian API melalui Azure API Management, jika Anda mengalami kesalahan, mereka biasanya menunjuk ke masalah konfigurasi. Berdasarkan kesalahan, tinjau langkah-langkah resolusi potensial.

Kode Pesan kesalahan Detail
HTTP 401 Unauthorized Invalid Azure AD JWT Periksa untuk memastikan Anda memiliki header autentikasi yang valid untuk Penyewa ID Microsoft Entra dan Aplikasi Klien untuk instans Azure Data Manager for Energy Anda.
HTTP 401 Unauthorized Azure AD JWT not present Periksa untuk memastikan header autentikasi ditambahkan ke permintaan pengujian Anda.
HTTP 404 Not Found Kesalahan ini biasanya berarti bahwa permintaan ke API backend sedang dibuat ke URL yang salah. Lacak permintaan API Anda di API Management untuk memahami URL apa yang dihasilkan untuk permintaan backend dan pastikan url tersebut valid. Jika tidak, periksa kembali kebijakan penulisan ulang url atau backend.
HTTP 500 Internal Server Error Internal server error Kesalahan ini biasanya mencerminkan masalah dalam membuat permintaan ke API backend. Biasanya, dalam skenario ini, masalahnya terkait dengan layanan nama domain (DNS). Periksa untuk memastikan ada zona DNS privat yang dikonfigurasi di jaringan virtual Anda atau resolusi DNS kustom Anda memiliki penerus yang sesuai. Lacak permintaan API Anda di API Management untuk memahami permintaan backend apa yang dibuat dan kesalahan apa yang dilaporkan API Management saat mencoba membuat permintaan.

Pertimbangan lain

Mode jaringan virtual internal API Management

Mode internal sepenuhnya mengisolasi Azure API Management alih-alih mengekspos titik akhir melalui alamat IP publik. Dalam konfigurasi ini, organisasi dapat memastikan bahwa semua Azure Data Manager for Energy bersifat internal. Karena Azure Data Manager for Energy adalah solusi kolaborasi untuk bekerja dengan mitra dan pelanggan, skenario ini mungkin tidak bermanfaat apa adanya.

App Gateway dengan firewall aplikasi web

Alih-alih menggunakan mode jaringan virtual internal saja, banyak organisasi memilih untuk menerapkan mekanisme proksi terbalik aman untuk mengekspos mode internal instans Azure API Management ke mitra dan pelanggan eksternal. Instans mode internal tetap sepenuhnya terisolasi dengan ingress yang dikontrol ketat yang harus melalui proksi.

Azure App Gateway adalah layanan umum untuk digunakan sebagai proksi terbalik. Azure App Gateway juga memiliki kemampuan firewall aplikasi web (WAF), yang secara aktif mendeteksi potensi serangan terhadap kerentanan dalam aplikasi dan API Anda.

Mengonfigurasi Azure API Management dengan domain kustom

Fitur umum lain dari arsitektur ini adalah menerapkan domain kustom ke API. Meskipun Azure Data Manager for Energy tidak mendukung fitur ini, Anda dapat mengonfigurasi domain kustom di Azure API Management sebagai gantinya.

Sertifikat untuk domain adalah prasyarat. Namun, Azure API Management mendukung pembuatan sertifikat terkelola gratis untuk domain kustom Anda.