Token cache - Amazon Cognito

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

Token cache

Diagram API Gateway yang memelihara cache token akses untuk M2M. Proxy API memproses permintaan token dan mengembalikan token cache jika sudah valid.

Aplikasi Anda harus berhasil menyelesaikan salah satu permintaan berikut setiap kali Anda ingin mendapatkan JSON Web Token (JWT) baru.

  • Minta kredensi klien atau hibah kode otorisasi dari. Titik akhir token

  • Minta hibah implisit dari UI yang dihosting.

  • Mengautentikasi pengguna lokal dalam permintaan Amazon Cognito API seperti. InitiateAuth

Anda dapat mengonfigurasi kumpulan pengguna untuk mengatur token agar kedaluwarsa dalam hitungan menit, jam, atau hari. Untuk memastikan performa dan ketersediaan aplikasi Anda, gunakan token Amazon Cognito hingga token tersebut kedaluwarsa, lalu ambil token baru. Solusi cache yang Anda buat untuk aplikasi membuat token tetap tersedia, dan mencegah penolakan permintaan oleh Amazon Cognito jika tingkat permintaan Anda terlalu tinggi. Aplikasi sisi klien harus menyimpan token dalam cache memori. Aplikasi sisi server dapat menambahkan mekanisme cache terenkripsi untuk menyimpan token.

Saat kumpulan pengguna menghasilkan volume pengguna atau machine-to-machine aktivitas yang tinggi, Anda mungkin menemukan batasan yang ditetapkan Amazon Cognito pada jumlah permintaan token yang dapat Anda buat. Untuk mengurangi jumlah permintaan yang Anda buat ke titik akhir Amazon Cognito, Anda dapat menyimpan dan menggunakan kembali data autentikasi dengan aman, atau menerapkan backoff dan percobaan ulang eksponensial.

Data otentikasi berasal dari dua kelas endpoint. Titik akhir Amazon Cognito OAuth 2.0 menyertakan titik akhir token, yang melayani kredensi klien dan permintaan kode otorisasi UI yang dihosting. Titik akhir layanan menjawab permintaan API kumpulan pengguna seperti InitiateAuth danRespondToAuthChallenge. Setiap jenis permintaan memiliki batasnya sendiri. Untuk informasi selengkapnya tentang batasn, lihat Kuota di Amazon Cognito.

Caching token machine-to-machine akses dengan Amazon API Gateway

Dengan caching token API Gateway, aplikasi Anda dapat menskalakan sebagai respons terhadap peristiwa yang lebih besar dari kuota tingkat permintaan default titik akhir Amazon Cognito OAuth.

Anda dapat men-cache token akses sehingga aplikasi Anda hanya meminta token akses baru jika token cache kedaluwarsa. Jika tidak, titik akhir caching Anda mengembalikan token dari cache. Ini mencegah panggilan tambahan ke titik akhir Amazon Cognito API. Bila Anda menggunakan Amazon API Gateway sebagai proxy keTitik akhir token, API Anda merespons sebagian besar permintaan yang sebaliknya akan berkontribusi pada kuota permintaan Anda, menghindari permintaan yang gagal sebagai akibat dari pembatasan tarif.

Solusi berbasis API Gateway berikut menawarkan implementasi caching token dengan latensi rendah, kode rendah/tanpa kode. API Gateway API dienkripsi saat transit, dan secara opsional diam. Cache API Gateway sangat ideal untuk hibah kredensi klien OAuth 2.0, jenis hibah volume tinggi yang sering menghasilkan token akses untuk sesi otorisasi dan layanan mikro. machine-to-machine Dalam peristiwa seperti lonjakan lalu lintas yang menyebabkan layanan mikro Anda berskala horizontal, Anda dapat berakhir dengan banyak sistem yang menggunakan kredensi klien yang sama pada volume yang melebihi batas AWS tingkat permintaan kumpulan pengguna atau klien aplikasi Anda. Untuk menjaga ketersediaan aplikasi dan latensi rendah, solusi caching adalah praktik terbaik dalam skenario seperti itu.

Dalam solusi ini, Anda menentukan cache di API Anda untuk menyimpan token akses terpisah untuk setiap kombinasi cakupan OAuth dan klien aplikasi yang ingin Anda minta di aplikasi Anda. Saat aplikasi Anda membuat permintaan yang cocok dengan kunci cache, API Anda merespons dengan token akses yang dikeluarkan Amazon Cognito ke permintaan pertama yang cocok dengan kunci cache. Ketika durasi kunci cache Anda kedaluwarsa, API Anda meneruskan permintaan ke titik akhir token Anda dan menyimpan token akses baru.

catatan

Durasi kunci cache Anda harus lebih pendek dari durasi token akses klien aplikasi Anda.

Kunci cache adalah kombinasi dari cakupan OAuth yang Anda minta dalam parameter scope URL dan Authorization header dalam permintaan. AuthorizationHeader berisi ID klien aplikasi dan rahasia klien Anda. Anda tidak perlu menerapkan logika tambahan di aplikasi Anda untuk mengimplementasikan solusi ini. Anda hanya harus memperbarui konfigurasi untuk mengubah jalur ke titik akhir token kumpulan pengguna Anda.

Anda juga dapat menerapkan token caching dengan ElastiCache for Redis. Untuk kontrol halus dengan kebijakan AWS Identity and Access Management (IAM), pertimbangkan cache Amazon DynamoDB.

catatan

Caching di API Gateway dikenakan biaya tambahan. Lihat harga untuk lebih jelasnya.

Untuk menyiapkan proxy caching dengan API Gateway

  1. Buka konsol API Gateway dan buat REST API.

  2. Di Sumber Daya, buat metode POST.

    1. Pilih tipe Integrasi HTTP.

    2. Pilih Gunakan integrasi proxy HTTP.

    3. Masukkan URL Endpoint dari. https://<your user pool domain>/oauth2/token

  3. Di Sumber Daya, konfigurasikan kunci cache.

    1. Edit permintaan Metode metode POST Anda.

    2. Tetapkan scope parameter dan Authorization header Anda sebagai kunci caching Anda.

      1. Tambahkan string kueri ke parameter string kueri URL dan pilih Caching untuk scope string.

      2. Tambahkan header ke header permintaan HTTP dan pilih Caching untuk header. Authorization

  4. Dalam Tahapan, konfigurasikan caching.

    1. Pilih tahap yang ingin Anda modifikasi.

    2. Di bawah Pengaturan, pilih Aktifkan cache API.

    3. Pilih kapasitas Cache.

    4. Pilih Cache time-to-live (TTL) minimal 3600 detik.

    5. Kosongkan kotak centang Memerlukan otorisasi.

  5. Dalam Tahapan, perhatikan URL Panggilan.

  6. Perbarui aplikasi Anda ke permintaan token POST ke URL Invoke API Anda, bukan /oauth2/token titik akhir kumpulan pengguna Anda.