Menerapkan autentikasi dan otorisasi di Azure Container Apps

Selesai

Azure Container Apps menyediakan fitur autentikasi dan otorisasi bawaan untuk mengamankan aplikasi kontainer eksternal anda yang mendukung ingress dengan kode minimal atau tanpa kode. Fitur autentikasi bawaan untuk Container Apps dapat menghemat waktu dan tenaga Anda dengan menyediakan autentikasi siap pakai dengan penyedia identitas federasi, memungkinkan Anda untuk fokus pada aplikasi lainnya.

  • Azure Container Apps menyediakan akses ke berbagai penyedia autentikasi bawaan.
  • Fitur autentikasi bawaan tidak memerlukan bahasa, SDK, keahlian keamanan, atau bahkan kode tertentu yang harus Anda tulis.

Fitur ini hanya boleh digunakan dengan HTTPS. Pastikan allowInsecure dinonaktifkan pada konfigurasi ingress aplikasi kontainer Anda. Anda dapat mengonfigurasi aplikasi kontainer untuk autentikasi dengan atau tanpa membatasi akses ke API dan konten situs Anda.

  • Untuk membatasi akses aplikasi hanya untuk pengguna yang diautentikasi, atur pengaturan Batasi akses ke Memerlukan autentikasi.
  • Untuk mengautentikasi tetapi tidak membatasi akses, atur pengaturan Batasi akses ke Izinkan akses yang tidak diautentikasi.

IdP

Container Apps menggunakan identitas federasi, yang memungkinkan penyedia identitas pihak ketiga mengelola identitas pengguna dan alur autentikasi untuk Anda. IdP berikut ini tersedia secara default:

Penyedia Titik akhir masuk Panduan cara kerja
Platform Identitas Microsoft /.auth/login/aad Platform Identitas Microsoft
Facebook /.auth/login/facebook Facebook
GitHub /.auth/login/github GitHub
Google /.auth/login/google Google
X /.auth/login/twitter X
Semua penyedia OpenID Connect /.auth/login/<providerName> Koneksi OpenID

Saat Anda menggunakan salah satu penyedia ini, titik akhir masuk tersedia untuk autentikasi pengguna dan validasi token autentikasi dari penyedia. Anda dapat memberi pengguna Anda sejumlah opsi penyedia ini.

Arsitektur fitur

Komponen middleware autentikasi dan otorisasi adalah fitur platform yang berjalan sebagai kontainer sespan pada setiap replika di aplikasi Anda. Ketika diaktifkan, setiap permintaan HTTP yang masuk melewati lapisan keamanan sebelum ditangani oleh aplikasi Anda.

Diagram memperlihatkan permintaan yang dicegat oleh kontainer sidecar yang berinteraksi dengan penyedia identitas, sebelum mengizinkan lalu lintas ke kontainer aplikasi.

Platform middleware menangani beberapa hal untuk aplikasi Anda:

  • Mengautentikasi pengguna dan klien dengan idP yang ditentukan
  • Mengelola sesi terautentikasi
  • Masukkan informasi identitas ke header permintaan HTTP

Modul autentikasi dan otorisasi berjalan dalam kontainer terpisah, terisolasi dari kode aplikasi Anda. Karena kontainer keamanan tidak berjalan dalam proses, tidak ada integrasi langsung dengan kerangka kerja bahasa tertentu yang dimungkinkan. Namun, informasi relevan yang dibutuhkan aplikasi Anda disediakan di header permintaan.

Alur autentikasi

Alur autentikasi sama untuk semua penyedia, tetapi berbeda tergantung pada apakah Anda ingin masuk dengan SDK penyedia:

  • Tanpa penyedia SDK (alur yang diarahkan server atau alur server): Aplikasi mendelegasikan masuk federasi ke Container Apps. Delegasi biasanya terjadi pada aplikasi browser, yang menyajikan halaman masuk penyedia kepada pengguna.

  • Dengan penyedia SDK (alur yang diarahkan klien atau alur klien): Aplikasi memasukkan pengguna ke penyedia secara manual dan kemudian mengirimkan token autentikasi ke Container Apps untuk validasi. Pendekatan ini tipikal untuk aplikasi tanpa browser yang tidak menyajikan halaman masuk penyedia kepada pengguna. Contohnya adalah aplikasi seluler asli yang memasukkan pengguna menggunakan SDK penyedia.