Bagikan melalui


Mengamankan konektivitas ke layanan dan database Azure dari Azure App Service

Layanan aplikasi Anda mungkin perlu terhubung ke layanan Azure lainnya seperti database, penyimpanan, atau aplikasi lain. Gambaran umum ini merekomendasikan metode yang berbeda untuk menyambungkan dan kapan menggunakannya.

Saat ini, keputusan untuk pendekatan konektivitas terkait erat dengan manajemen rahasia. Pola umum penggunaan rahasia koneksi dalam string koneksi, seperti nama pengguna dan kata sandi, kunci rahasia, dll. tidak lagi dianggap sebagai pendekatan yang paling aman untuk konektivitas. Risikonya bahkan lebih tinggi saat ini karena pelaku ancaman secara teratur merayapi repositori GitHub publik untuk rahasia koneksi yang diterapkan secara tidak sengaja. Untuk aplikasi cloud, manajemen rahasia terbaik adalah tidak memiliki rahasia sama sekali. Saat Anda bermigrasi ke Azure App Service, aplikasi Anda mungkin dimulai dengan konektivitas berbasis rahasia, dan App Service memungkinkan Anda menyimpan rahasia dengan aman. Namun, Azure dapat membantu mengamankan konektivitas back-end aplikasi Anda melalui autentikasi Microsoft Entra, yang menghilangkan rahasia sama sekali di aplikasi Anda.

Metode koneksi Waktu menggunakan
Menyambungkan dengan identitas aplikasi * Anda ingin menghapus kredensial, kunci, atau rahasia sepenuhnya dari aplikasi Anda.
* Layanan Azure hilir mendukung autentikasi Microsoft Entra, seperti Microsoft Graph.
* Sumber daya hilir tidak perlu mengetahui pengguna yang masuk saat ini atau tidak memerlukan otorisasi terperinci dari pengguna yang masuk saat ini.
Menyambungkan atas nama pengguna yang masuk * Aplikasi harus mengakses sumber daya hilir atas nama pengguna yang masuk.
* Layanan Azure hilir mendukung autentikasi Microsoft Entra, seperti Microsoft Graph.
* Sumber daya hilir harus melakukan otorisasi terperinci dari pengguna yang masuk saat ini.
Menyambungkan menggunakan rahasia * Sumber daya hilir memerlukan rahasia koneksi.
* Aplikasi Anda tersambung ke layanan non-Azure, seperti server database lokal.
* Layanan Azure hilir belum mendukung autentikasi Microsoft Entra.

Menyambungkan dengan identitas aplikasi

Jika aplikasi Anda sudah menggunakan satu set kredensial untuk mengakses layanan Azure hilir, Anda dapat dengan cepat mengonversi koneksi untuk menggunakan identitas aplikasi sebagai gantinya. Identitas terkelola dari MICROSOFT Entra ID memungkinkan App Service mengakses sumber daya tanpa rahasia, dan Anda dapat mengelola aksesnya melalui kontrol akses berbasis peran (RBAC). Identitas terkelola dapat tersambung ke sumber daya Azure apa pun yang mendukung autentikasi Microsoft Entra, dan autentikasi berlangsung dengan token berumur pendek.

Gambar berikut menunjukkan App Service berikut ini yang terhubung ke layanan Azure lainnya:

  • A: Pengguna mengunjungi situs web layanan aplikasi Azure.
  • B: Sambungkan dengan aman dari App Service ke layanan Azure lain menggunakan identitas terkelola.
  • C: Sambungkan dengan aman dari App Service ke Microsoft Graph menggunakan identitas terkelola.

Diagram memperlihatkan identitas terkelola yang mengakses sumber daya dengan atau tanpa identitas pengguna.

Contoh penggunaan rahasia aplikasi untuk menyambungkan ke database:

Menyambungkan atas nama pengguna yang masuk

Aplikasi Anda mungkin perlu terhubung ke layanan hilir atas nama pengguna yang masuk. App Service memungkinkan Anda dengan mudah mengautentikasi pengguna menggunakan penyedia identitas yang paling umum (lihat Autentikasi dan otorisasi di Azure App Service dan Azure Functions). Jika Anda menggunakan penyedia Microsoft (autentikasi Microsoft Entra), Anda kemudian dapat mengalirkan pengguna yang masuk ke layanan hilir apa pun. Contohnya:

  • Jalankan kueri database yang mengembalikan data rahasia yang diizinkan untuk dibaca oleh pengguna yang masuk.
  • Ambil data pribadi atau ambil tindakan sebagai pengguna yang masuk di Microsoft Graph.

Gambar berikut menunjukkan aplikasi yang mengakses database SQL dengan aman atas nama pengguna yang masuk.

Diagram arsitektur untuk skenario tutorial.

Beberapa skenario umum adalah:

Menyambungkan menggunakan rahasia

Ada dua cara yang direkomendasikan untuk menggunakan rahasia di aplikasi Anda: menggunakan rahasia yang disimpan di Azure Key Vault atau rahasia di pengaturan aplikasi App Service.

Menggunakan rahasia dari Key Vault

Azure Key Vault dapat digunakan untuk menyimpan rahasia dan kunci dengan aman, memantau akses dan penggunaan rahasia, dan menyederhanakan administrasi rahasia aplikasi. Jika layanan hilir tidak mendukung autentikasi Microsoft Entra atau memerlukan string koneksi atau kunci, gunakan Key Vault untuk menyimpan rahasia Anda dan menghubungkan aplikasi Anda ke Key Vault dengan identitas terkelola dan mengambil rahasia. Aplikasi Anda dapat mengakses rahasia brankas kunci sebagai referensi Key Vault di pengaturan aplikasi.

Manfaat identitas terkelola yang terintegrasi dengan Key Vault meliputi:

  • Akses ke rahasia brankas kunci dibatasi untuk aplikasi.
  • Kontributor aplikasi, seperti administrator, mungkin memiliki kontrol penuh atas sumber daya App Service, dan pada saat yang sama tidak memiliki akses ke rahasia brankas kunci.
  • Tidak ada perubahan kode yang diperlukan jika kode aplikasi Anda sudah mengakses rahasia koneksi dengan pengaturan aplikasi.
  • Key Vault menyediakan pemantauan dan audit siapa yang mengakses rahasia.
  • Rotasi rahasia brankas kunci tidak memerlukan perubahan di App Service.

Gambar berikut menunjukkan App Service yang terhubung ke Key Vault menggunakan identitas terkelola lalu mengakses layanan Azure menggunakan rahasia yang disimpan di Key Vault:

Diagram memperlihatkan layanan aplikasi menggunakan rahasia yang disimpan di Key Vault dan dikelola dengan Identitas terkelola untuk menyambungkan ke layanan Azure AI.

Menggunakan rahasia di pengaturan aplikasi

Untuk aplikasi yang terhubung ke layanan menggunakan rahasia (seperti nama pengguna, kata sandi, dan kunci API), App Service dapat menyimpannya dengan aman di pengaturan aplikasi. Rahasia ini disuntikkan ke dalam kode aplikasi Anda sebagai variabel lingkungan di startup aplikasi. Pengaturan aplikasi selalu dienkripsi saat disimpan (dienkripsi saat istirahat). Untuk manajemen rahasia yang lebih canggih, seperti rotasi rahasia, kebijakan akses, dan riwayat audit, coba gunakan Key Vault.

Contoh penggunaan rahasia aplikasi untuk menyambungkan ke database:

Langkah berikutnya

Pelajari cara: