Verifikasi Token Kustom dengan Otorisasi Lambda - AWS HealthImaging

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Verifikasi Token Kustom dengan Otorisasi Lambda

HealthImaging mengimplementasikan dukungan OIDC melalui arsitektur yang menggunakan otorisasi Lambda, yang memungkinkan pelanggan untuk menerapkan logika verifikasi token mereka sendiri. Desain ini memberi Anda kontrol yang fleksibel atas bagaimana token divalidasi dan bagaimana keputusan akses diberlakukan, mengakomodasi beragam lanskap Penyedia Identitas yang kompatibel dengan OIDC (IdPs) dan berbagai metode verifikasi token.

Alur Otentikasi

Inilah cara kerja otentikasi pada tingkat tinggi:

  1. Klien memanggil DICOMweb API: Aplikasi Anda mengautentikasi dengan penyedia identitas OIDC pilihan Anda dan menerima token ID yang ditandatangani (JWT). Untuk setiap permintaan DICOMweb HTTP, klien harus menyertakan token akses OIDC di header Otorisasi (biasanya token Pembawa). Sebelum permintaan mencapai data Anda, HealthImaging ekstrak token ini dari permintaan yang masuk dan memanggil otorisasi Lambda yang Anda konfigurasikan.

    1. Header biasanya mengikuti format:Authorization: Bearer <token>.

  2. Verifikasi awal: HealthImaging memverifikasi klaim token akses untuk dengan cepat menolak token yang jelas tidak valid atau kedaluwarsa tanpa menjalankan fungsi Lambda secara tidak perlu. HealthImaging melakukan verifikasi awal klaim standar tertentu dalam token akses sebelum memanggil otorisasi Lambda:

    1. iat(Diterbitkan Pada): HealthImaging memeriksa apakah waktu penerbitan token berada dalam batas yang dapat diterima.

    2. exp(Waktu Kedaluwarsa): HealthImaging memverifikasi bahwa token belum kedaluwarsa.

    3. nbf(Tidak Sebelum Waktu): Jika ada HealthImaging , pastikan token tidak digunakan sebelum waktu mulai yang valid.

  3. HealthImaging memanggil otorisasi Lambda: Jika verifikasi klaim awal lolos HealthImaging , maka delegasikan verifikasi token lebih lanjut ke fungsi otorisasi Lambda yang dikonfigurasi pelanggan. HealthImaging meneruskan token yang diekstraksi dan informasi permintaan relevan lainnya ke fungsi Lambda. Fungsi Lambda memverifikasi tanda tangan dan klaim token.

  4. Verifikasi dengan penyedia identitas: Lambda berisi kode kustom yang memeriksa tanda tangan token ID, melakukan verifikasi token yang lebih luas (misalnya, penerbit, audiens, klaim khusus), dan memvalidasi klaim tersebut terhadap IDP bila diperlukan.

  5. Authorizer mengembalikan kebijakan akses: Setelah verifikasi berhasil, fungsi Lambda menentukan izin yang sesuai untuk penggunaan yang diautentikasi. Authorizer Lambda kemudian mengembalikan nama sumber daya amazon (ARN) dari peran IAM yang mewakili kumpulan izin yang akan diberikan.

  6. Permintaan eksekusi: Jika peran IAM yang diasumsikan memiliki izin yang diperlukan, HealthImaging lanjutkan dengan mengembalikan sumber daya yang diminta. DICOMWeb Jika izin tidak mencukupi, HealthImaging menolak permintaan dan mengembalikan kesalahan respons kesalahan yang sesuai (yaitu, 403 Terlarang).

catatan

Lambda otorisasi berfungsi tidak dikelola oleh layanan HealthImaging AWS. Ini mengeksekusi di AWS akun Anda. Pelanggan dikenakan biaya untuk pemanggilan fungsi dan waktu eksekusi secara terpisah dari biaya mereka HealthImaging .

Ikhtisar Arsitektur

Diagram yang menunjukkan alur kerja: Klien mengirim token, validasi otorisasi Lambda, memproses permintaan HealthImaging

Alur kerja otentikasi OIDC dengan otorisasi Lambda

Prasyarat

Persyaratan Token Akses

HealthImaging mengharuskan token akses dalam format JSON Web Token (JWT). Banyak Penyedia Identitas (IDPs) menawarkan format token ini secara asli, sementara yang lain memungkinkan Anda untuk memilih atau mengonfigurasi formulir token akses. Pastikan IDP pilihan Anda dapat mengeluarkan token JWT sebelum melanjutkan integrasi.

Format Token

Token akses harus dalam format JWT (JSON Web Token)

Klaim yang Diperlukan
exp(Waktu Kedaluwarsa)

Klaim wajib yang menentukan kapan token menjadi tidak valid.

  • Harus setelah waktu saat ini di UTC

  • Merupakan saat token menjadi tidak valid

iat(Dikeluarkan Pada)

Klaim wajib yang menentukan kapan token dikeluarkan.

  • Harus sebelum waktu saat ini di UTC

  • TIDAK boleh lebih awal dari 12 jam sebelum waktu saat ini di UTC

  • Ini secara efektif memberlakukan masa pakai token maksimum 12 jam

nbf(Tidak sebelum waktu)

Klaim opsional yang menentukan waktu paling awal token dapat digunakan.

  • Jika ada, akan dievaluasi oleh HealthImaging

  • Menentukan waktu sebelum token tidak boleh diterima

Persyaratan waktu respons otorisasi Lambda

HealthImaging memberlakukan persyaratan waktu yang ketat untuk respons otorisasi Lambda untuk memastikan kinerja API yang optimal. Fungsi Lambda Anda harus kembali dalam 1 detik.

Praktik terbaik

Optimalkan Verifikasi Token

  • Cache JWKS (Set Kunci Web JSON) bila memungkinkan

  • Cache token akses yang valid bila memungkinkan

  • Minimalkan panggilan jaringan ke Penyedia Identitas Anda

  • Menerapkan logika validasi token yang efisien

Konfigurasi Lambda

  • Fungsi berbasis Python dan Node.js biasanya diinisialisasi lebih cepat

  • Kurangi jumlah pustaka eksternal yang akan dimuat

  • Konfigurasikan alokasi memori yang sesuai untuk memastikan kinerja yang konsisten

  • Pantau waktu eksekusi menggunakan CloudWatch metrik

Pengaktifan Otentikasi OIDC

  • Otentikasi OIDC hanya dapat diaktifkan saat membuat datastore baru

  • Mengaktifkan OIDC untuk datastores yang ada tidak didukung melalui API

  • Untuk mengaktifkan OIDC pada datastore yang ada, pelanggan harus menghubungi Support AWS