Pemicu Lambda pra otentikasi - Amazon Cognito

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

Pemicu Lambda pra otentikasi

Amazon Cognito memanggil pemicu ini saat pengguna mencoba masuk sehingga Anda dapat membuat validasi khusus yang melakukan tindakan persiapan. Misalnya, Anda dapat menolak permintaan otentikasi atau merekam data sesi ke sistem eksternal.

catatan

Pemicu Lambda ini tidak aktif saat pengguna tidak ada, atau sudah memiliki sesi yang ada di kumpulan pengguna Anda. Jika PreventUserExistenceErrors pengaturan klien aplikasi kumpulan pengguna disetel keENABLED, maka pemicu Lambda akan diaktifkan.

Ikhtisar aliran otentikasi

Pemicu Lambda pra autentikasi - alur klien

Permintaan tersebut menyertakan data validasi klien dari ClientMetadata nilai yang diteruskan aplikasi Anda ke kumpulan pengguna InitiateAuth dan operasi AdminInitiateAuth API.

Untuk informasi selengkapnya, lihat Alur otentikasi kumpulan pengguna.

Parameter pemicu Lambda pra otentikasi

Permintaan yang diteruskan Amazon Cognito ke fungsi Lambda ini adalah kombinasi dari parameter di bawah ini dan parameter umum yang ditambahkan Amazon Cognito ke semua permintaan.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "validationData": { "string": "string", . . . }, "userNotFound": boolean }, "response": {} }

Parameter permintaan pra otentikasi

userAttributes

Satu atau lebih pasangan nama-nilai yang mewakili atribut pengguna.

userNotFound

Saat Anda mengatur PreventUserExistenceErrors ENABLED untuk klien kumpulan pengguna Anda, Amazon Cognito mengisi Boolean ini.

validationData

Satu atau beberapa pasangan nilai kunci yang berisi data validasi dalam permintaan login pengguna. Untuk meneruskan data ini ke fungsi Lambda Anda, gunakan ClientMetadata parameter dalam tindakan InitiateAuthdan AdminInitiateAuthAPI.

Parameter respons pra otentikasi

Amazon Cognito tidak mengharapkan informasi pengembalian tambahan dalam tanggapan. Fungsi Anda dapat menampilkan kesalahan untuk menolak upaya masuk, atau menggunakan operasi API untuk menanyakan dan memodifikasi sumber daya Anda.

Contoh pra otentikasi

Fungsi contoh ini mencegah pengguna masuk ke kumpulan pengguna Anda dengan klien aplikasi tertentu. Karena fungsi Lambda pra autentikasi tidak dipanggil saat pengguna memiliki sesi yang sudah ada, fungsi ini hanya mencegah sesi baru dengan ID klien aplikasi yang ingin Anda blokir.

Node.js
const handler = async (event) => { if ( event.callerContext.clientId === "user-pool-app-client-id-to-be-blocked" ) { throw new Error("Cannot authenticate users from this user pool app client"); } return event; }; export { handler };
Python
def lambda_handler(event, context): if event['callerContext']['clientId'] == "<user pool app client id to be blocked>": raise Exception("Cannot authenticate users from this user pool app client") # Return to Amazon Cognito return event

Amazon Cognito meneruskan informasi peristiwa ke fungsi Lambda Anda. Fungsi kemudian mengembalikan objek acara yang sama ke Amazon Cognito, dengan perubahan apa pun dalam respons. Di konsol Lambda, Anda dapat mengatur peristiwa pengujian dengan data yang relevan dengan pemicu Lambda Anda. Berikut ini adalah peristiwa pengujian untuk sampel kode ini:

JSON
{ "callerContext": { "clientId": "<user pool app client id to be blocked>" }, "response": {} }