Pemicu Lambda generasi pra token - Amazon Cognito

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

Pemicu Lambda generasi pra token

Karena Amazon Cognito memanggil pemicu ini sebelum pembuatan token, Anda dapat menyesuaikan klaim dalam token kumpulan pengguna. Dengan fitur Dasar dari versi satu atau peristiwa pemicu pembuatan token V1_0 pra, Anda dapat menyesuaikan token identitas (ID). Di kumpulan pengguna dengan fitur keamanan lanjutan yang aktif, Anda dapat menghasilkan versi 2 atau V2_0 memicu peristiwa dengan kustomisasi token akses.

Amazon Cognito mengirimkan V1_0 acara sebagai permintaan ke fungsi Anda dengan data yang akan ditulis ke token ID. V2_0Peristiwa adalah permintaan tunggal dengan data yang akan ditulis Amazon Cognito ke identitas dan token akses. Untuk menyesuaikan kedua token, Anda harus memperbarui fungsi Anda untuk menggunakan versi pemicu terbaru, dan mengirim data untuk kedua token dalam respons yang sama.

Pemicu Lambda ini dapat menambah, menghapus, dan memodifikasi beberapa klaim dalam identitas dan token akses sebelum Amazon Cognito menerbitkannya ke aplikasi Anda. Untuk menggunakan fitur ini, kaitkan fungsi Lambda dari konsol kumpulan pengguna Amazon Cognito atau perbarui LambdaConfig kumpulan pengguna Anda melalui AWS Command Line Interface ().AWS CLI

Versi acara

Kumpulan pengguna Anda dapat mengirimkan versi berbeda dari peristiwa pemicu pembuatan token pra ke fungsi Lambda Anda. V1_0Pemicu memberikan parameter untuk modifikasi token ID. V2_0Pemicu memberikan parameter untuk yang berikut ini.

  1. Fungsi V1_0 pemicu.

  2. Kemampuan untuk menyesuaikan token akses.

  3. Kemampuan untuk meneruskan tipe data kompleks ke ID dan mengakses nilai klaim token:

    • String

    • Number

    • Boolean

    • Array string, angka, boolean, atau kombinasi dari semua ini

    • JSON

catatan

Dalam token ID, Anda dapat mengisi objek kompleks dengan nilai klaim kecualiphone_number_verified,, email_verifiedupdated_at, danaddress.

Kumpulan pengguna mengirimkan V1_0 acara secara default. Untuk mengonfigurasi kumpulan pengguna Anda untuk mengirim V2_0 peristiwa, pilih versi peristiwa Pemicu dari fitur Dasar+penyesuaian token akses saat Anda mengonfigurasi pemicu di konsol Amazon Cognito. Anda juga dapat mengatur nilai LambdaVersion dalam LambdaConfigparameter dalam CreateUserPool APIpermintaan UpdateUserPool atau. Biaya tambahan berlaku untuk mengakses kustomisasi token dengan V2_0 acara. Untuk informasi selengkapnya, lihat Harga Amazon Cognito.

Klaim dan cakupan yang dikecualikan

Amazon Cognito membatasi klaim dan cakupan yang dapat Anda tambahkan, modifikasi, atau tekan dalam token akses dan identitas. Jika fungsi Lambda Anda mencoba menetapkan nilai untuk salah satu klaim ini, Amazon Cognito mengeluarkan token dengan nilai klaim asli, jika ada dalam permintaan.

Klaim bersama
  • acr

  • amr

  • at_hash

  • auth_time

  • azp

  • exp

  • iat

  • iss

  • jti

  • nbf

  • nonce

  • origin_jti

  • sub

  • token_use

Klaim token ID
  • identities

  • aud

  • cognito:username

Klaim token akses
  • username

  • client_id

  • scope

    catatan

    Anda dapat mengubah cakupan dalam token akses dengan scopesToAdd dan nilai scopesToSuppress respons, tetapi Anda tidak dapat memodifikasi scope klaim secara langsung. Anda tidak dapat menambahkan cakupan yang dimulaiaws.cognito, termasuk cakupan aws.cognito.signin.user.admin cadangan kumpulan pengguna.

  • device_key

  • event_id

  • version

Anda tidak dapat menambahkan atau mengganti klaim dengan awalan berikut tetapi Anda dapat menekannya, atau mencegahnya muncul di token.

  • dev:

  • cognito:

IAMPeran mengklaim cognito:roles dan cognito:preferred_role ditautkan ke grup kumpulan pengguna secara default. Untuk menekan klaim ini, tekan cognito:groups objek. claimsToSuppress

Anda dapat menambahkan aud klaim ke token akses, tetapi nilainya harus sesuai dengan ID klien aplikasi sesi saat ini. Anda dapat memperoleh ID klien dalam acara permintaan darievent.callerContext.clientId.

Menyesuaikan token identitas

Dengan pemicu Lambda pembuatan token pra, Anda dapat menyesuaikan konten token identitas (ID) dari kumpulan pengguna Anda. Token ID menyediakan atribut pengguna dari sumber identitas tepercaya untuk login ke web atau aplikasi seluler. Untuk informasi selengkapnya tentang token ID, lihatMemahami token identitas (ID).

Penggunaan pemicu Lambda generasi pra token dengan token ID meliputi yang berikut ini.

  • Buat perubahan saat runtime ke IAM peran yang diminta pengguna dari kumpulan identitas.

  • Tambahkan atribut pengguna dari sumber eksternal.

  • Tambahkan atau ganti nilai atribut pengguna yang ada.

  • Menekan pengungkapan atribut pengguna yang, karena cakupan resmi pengguna Anda dan akses baca ke atribut yang Anda berikan kepada klien aplikasi, akan diteruskan ke aplikasi Anda.

Menyesuaikan token akses

Dengan pemicu Lambda generasi pra token, Anda dapat menyesuaikan konten token akses dari kumpulan pengguna Anda. Token akses memberi wewenang kepada pengguna untuk mengambil informasi dari sumber daya yang dilindungi akses seperti operasi resmi token Amazon Cognito dan pihak ketiga. API APIs Meskipun Anda dapat menghasilkan token akses untuk otorisasi machine-to-machine (M2M) dengan Amazon Cognito dengan hibah kredensional klien, permintaan M2M tidak menjalankan fungsi pemicu pembuatan token pra dan tidak dapat mengeluarkan token akses yang disesuaikan. Untuk informasi selengkapnya tentang token akses, lihatMemahami token akses.

Penggunaan pemicu Lambda generasi pra token dengan token akses meliputi yang berikut ini.

  • Tambahkan atau tekan cakupan OAuth 2.0 dalam klaim. scope Misalnya, Anda dapat menambahkan cakupan ke token akses yang dihasilkan dari autentikasi API kumpulan pengguna Amazon Cognito, yang hanya menetapkan cakupan. aws.cognito.signin.user.admin

  • Ubah keanggotaan pengguna dalam grup kumpulan pengguna.

  • Tambahkan klaim yang belum ada di token akses Amazon Cognito.

  • Menekan pengungkapan klaim yang seharusnya diteruskan ke aplikasi Anda.

Untuk mendukung penyesuaian akses di kumpulan pengguna Anda, Anda harus mengonfigurasi kumpulan pengguna untuk menghasilkan versi terbaru dari permintaan pemicu. Perbarui kumpulan pengguna Anda seperti yang ditunjukkan dalam prosedur berikut.

AWS Management Console
Untuk mendukung kustomisasi token akses dalam pemicu Lambda generasi pra token
  1. Buka konsol Amazon Cognito, lalu pilih Kumpulan Pengguna.

  2. Pilih kolam pengguna yang ada dari daftar, atau buat kolam pengguna.

  3. Jika Anda belum melakukannya, aktifkan fitur keamanan lanjutan dari tab Keamanan lanjutan.

  4. Pilih tab Properti kumpulan pengguna dan temukan pemicu Lambda.

  5. Tambahkan atau edit pemicu pembuatan Pra token.

  6. Pilih fungsi Lambda di bawah fungsi Tetapkan Lambda.

  7. Pilih versi acara Trigger dari fitur Basic + kustomisasi token akses. Pengaturan ini memperbarui parameter permintaan yang dikirimkan Amazon Cognito ke fungsi Anda untuk menyertakan bidang untuk penyesuaian token akses.

User pools API

Untuk mendukung kustomisasi token akses dalam pemicu Lambda generasi pra token

Hasilkan CreateUserPoolatau UpdateUserPoolAPIpermintaan. Anda harus menentukan nilai untuk semua parameter yang tidak ingin disetel ke nilai default. Untuk informasi selengkapnya, lihat Memperbarui kumpulan pengguna dan konfigurasi klien aplikasi.

Sertakan konten berikut dalam LambdaVersion parameter permintaan Anda. LambdaVersionNilai V2_0 menyebabkan kumpulan pengguna Anda menambahkan parameter untuk kustomisasi token akses. Untuk memanggil versi fungsi tertentu, gunakan fungsi Lambda ARN dengan versi fungsi sebagai nilai. LambdaArn

"PreTokenGenerationConfig": { "LambdaArn": "arn:aws:lambda:us-west-2:123456789012:function:MyFunction", "LambdaVersion": "V2_0" },

Sumber pemicu Lambda generasi pra token

triggerSource nilai Peristiwa
TokenGeneration_HostedAuth Dipanggil selama autentikasi dari halaman masuk UI yang dihosting Amazon Cognito.
TokenGeneration_Authentication Dipanggil setelah alur autentikasi pengguna selesai.
TokenGeneration_NewPasswordChallenge Dipanggil setelah pengguna dibuat oleh admin. Alur ini dipanggil ketika pengguna harus mengubah kata sandi sementara.
TokenGeneration_AuthenticateDevice Dipanggil pada akhir autentikasi perangkat pengguna.
TokenGeneration_RefreshTokens Dipanggil saat pengguna mencoba menyegarkan identitas dan mengakses token.

Parameter pemicu Lambda generasi pra token

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. Saat Anda menambahkan pemicu Lambda generasi pra token ke kumpulan pengguna Anda, Anda dapat memilih versi pemicu. Versi ini menentukan apakah Amazon Cognito meneruskan permintaan ke fungsi Lambda Anda dengan parameter tambahan untuk kustomisasi token akses.

Version 1

Token versi 1 dapat mengatur keanggotaan grup, IAM peran, dan klaim baru dalam token ID.

{ "request": { "userAttributes": {"string": "string"}, "groupConfiguration": { "groupsToOverride": [ "string", "string" ], "iamRolesToOverride": [ "string", "string" ], "preferredRole": "string" }, "clientMetadata": {"string": "string"} }, "response": { "claimsOverrideDetails": { "claimsToAddOrOverride": {"string": "string"}, "claimsToSuppress": [ "string", "string" ], "groupOverrideDetails": { "groupsToOverride": [ "string", "string" ], "iamRolesToOverride": [ "string", "string" ], "preferredRole": "string" } } } }
Version 2

Peristiwa permintaan versi 2 menambahkan bidang yang menyesuaikan token akses. Hal ini juga menambahkan dukungan untuk tipe claimsToOverride data yang kompleks dalam objek respon. Fungsi Lambda Anda dapat mengembalikan jenis data berikut dalam nilai: claimsToOverride

  • String

  • Number

  • Boolean

  • Array string, angka, boolean, atau kombinasi dari semua ini

  • JSON

{ "request": { "userAttributes": { "string": "string" }, "scopes": ["string", "string"], "groupConfiguration": { "groupsToOverride": ["string", "string"], "iamRolesToOverride": ["string", "string"], "preferredRole": "string" }, "clientMetadata": { "string": "string" } }, "response": { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": { "string": [accepted datatype] }, "claimsToSuppress": ["string", "string"] }, "accessTokenGeneration": { "claimsToAddOrOverride": { "string": [accepted datatype] }, "claimsToSuppress": ["string", "string"], "scopesToAdd": ["string", "string"], "scopesToSuppress": ["string", "string"] }, "groupOverrideDetails": { "groupsToOverride": ["string", "string"], "iamRolesToOverride": ["string", "string"], "preferredRole": "string" } } } }

Parameter permintaan pembuatan pra token

Nama Penjelasan Versi acara pemicu minimum
userAttributes

Atribut profil pengguna Anda di kumpulan pengguna Anda.

1
groupConfiguration

Objek masukan yang berisi konfigurasi grup saat ini. Objek termasukgroupsToOverride,iamRolesToOverride, danpreferredRole.

1
groupsToOverride

Kelompok kumpulan pengguna yang menjadi anggota pengguna Anda.

1
iamRolesToMengesampingkan

Anda dapat mengaitkan grup kumpulan pengguna dengan peran AWS Identity and Access Management (IAM). Elemen ini adalah daftar semua IAM peran dari grup tempat pengguna Anda menjadi anggota.

1
preferredRole

Anda dapat menetapkan prioritas untuk grup kumpulan pengguna. Elemen ini berisi nama IAM peran dari grup dengan presendensi tertinggi dalam elemen. groupsToOverride

1
clientMetadata

Satu atau beberapa pasangan nilai kunci yang dapat Anda tentukan dan berikan sebagai input khusus ke fungsi Lambda untuk pemicu pembuatan token pra.

Untuk meneruskan data ini ke fungsi Lambda Anda, gunakan ClientMetadata parameter dalam AdminRespondToAuthChallengedan RespondToAuthChallengeAPIoperasi. Amazon Cognito tidak menyertakan data dari ClientMetadata parameter AdminInitiateAuthdan InitiateAuthAPIoperasi dalam permintaan yang diteruskan ke fungsi pembuatan token pra.

1
cakupan

Cakupan OAuth 2.0 pengguna Anda. Cakupan yang ada dalam token akses adalah standar kumpulan pengguna dan cakupan kustom yang diminta pengguna, dan bahwa Anda mengizinkan klien aplikasi Anda untuk menerbitkan.

2

Parameter respons pembuatan pra token

Nama Penjelasan Versi acara pemicu minimum
claimsOverrideDetails Sebuah wadah untuk semua elemen dalam peristiwa V1_0 pemicu. 1
claimsAndScopeOverrideDetails

Sebuah wadah untuk semua elemen dalam peristiwa V2_0 pemicu.

2
idTokenGeneration

Klaim yang ingin Anda ganti, tambahkan, atau tekan di token ID pengguna Anda. Nilai kustomisasi token induk ke ID ini hanya muncul di acara versi 2, tetapi elemen anak muncul di acara versi 1.

2
accessTokenGeneration

Klaim dan cakupan yang ingin Anda timpa, tambahkan, atau tekan di token akses pengguna Anda. Induk ini untuk mengakses nilai kustomisasi token hanya muncul di acara versi 2.

2
claimsToAddOrOverride

Peta dari satu atau lebih klaim dan nilainya yang ingin Anda tambahkan atau modifikasi. Untuk klaim terkait grup, gunakan groupOverrideDetails sebagai gantinya.

Dalam acara versi 2, elemen ini muncul di bawah keduanya accessTokenGeneration danidTokenGeneration.

1 *
claimsToSuppress

Daftar klaim yang ingin Anda tekan oleh Amazon Cognito. Jika fungsi Anda menekan dan mengganti nilai klaim, Amazon Cognito akan menekan klaim tersebut.

Dalam acara versi 2, elemen ini muncul di bawah keduanya accessTokenGeneration danidTokenGeneration.

1
groupOverrideDetails

Objek output yang berisi konfigurasi grup saat ini. Objek termasukgroupsToOverride,iamRolesToOverride, danpreferredRole.

Fungsi Anda menggantikan groupOverrideDetails objek dengan objek yang Anda berikan. Jika Anda memberikan objek kosong atau null dalam respons, Amazon Cognito akan menekan grup. Untuk menjaga konfigurasi grup yang ada tetap sama, salin nilai groupConfiguration objek permintaan ke groupOverrideDetails objek dalam respons. Kemudian berikan kembali ke layanan.

ID Amazon Cognito dan token akses keduanya berisi klaim. cognito:groups groupOverrideDetailsObjek Anda menggantikan cognito:groups klaim dalam token akses dan token ID.

1
scopesToAdd

Daftar cakupan OAuth 2.0 yang ingin Anda tambahkan ke scope klaim di token akses pengguna Anda. Anda tidak dapat menambahkan nilai cakupan yang berisi satu atau beberapa karakter ruang kosong.

2
scopesToSuppress

Daftar cakupan OAuth 2.0 yang ingin Anda hapus dari scope klaim di token akses pengguna Anda.

2

* Objek respons ke acara versi 1 dapat mengembalikan string. Objek respons terhadap peristiwa versi 2 dapat mengembalikan objek yang kompleks.

Contoh peristiwa pemicu pra token versi dua: Menambahkan dan menekan klaim, cakupan, dan grup

Contoh ini membuat modifikasi berikut pada token pengguna.

  1. Menetapkan mereka family_name sebagai Doe dalam token ID.

  2. Mencegah email dan phone_number klaim agar tidak muncul di token ID.

  3. Menetapkan cognito:roles klaim token ID mereka ke"arn:aws:iam::123456789012:role\/sns_callerA","arn:aws:iam::123456789012:role\/sns_callerC","arn:aws:iam::123456789012:role\/sns_callerB".

  4. Menetapkan cognito:preferred_role klaim token ID mereka kearn:aws:iam::123456789012:role/sns_caller.

  5. Menambahkan cakupanopenid,email, dan solar-system-data/asteroids.add ke token akses.

  6. Menekan ruang lingkup phone_number dan aws.cognito.signin.user.admin dari token akses. Penghapusan phone_number mencegah pengambilan nomor telepon pengguna dariuserInfo. Penghapusan aws.cognito.signin.user.admin mencegah API permintaan oleh pengguna untuk membaca dan memodifikasi profil mereka sendiri dengan kumpulan pengguna Amazon Cognito. API

    catatan

    Penghapusan phone_number dari cakupan hanya mencegah pengambilan nomor telepon pengguna jika cakupan yang tersisa dalam token akses termasuk openid dan setidaknya satu ruang lingkup standar lagi. Untuk informasi selengkapnya, lihat Tentang cakupan.

  7. Menetapkan cognito:groups klaim ID dan token akses mereka ke"new-group-A","new-group-B","new-group-C".

JavaScript
export const handler = function(event, context) { event.response = { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": { "family_name": "Doe" }, "claimsToSuppress": [ "email", "phone_number" ] }, "accessTokenGeneration": { "scopesToAdd": [ "openid", "email", "solar-system-data/asteroids.add" ], "scopesToSuppress": [ "phone_number", "aws.cognito.signin.user.admin" ] }, "groupOverrideDetails": { "groupsToOverride": [ "new-group-A", "new-group-B", "new-group-C" ], "iamRolesToOverride": [ "arn:aws:iam::123456789012:role/new_roleA", "arn:aws:iam::123456789012:role/new_roleB", "arn:aws:iam::123456789012:role/new_roleC" ], "preferredRole": "arn:aws:iam::123456789012:role/new_role", } } }; // Return to Amazon Cognito context.done(null, 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
{ "version": "2", "triggerSource": "TokenGeneration_Authentication", "region": "us-east-1", "userPoolId": "us-east-1_EXAMPLE", "userName": "JaneDoe", "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "request": { "userAttributes": { "sub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "cognito:user_status": "CONFIRMED", "email_verified": "true", "phone_number_verified": "true", "phone_number": "+12065551212", "family_name": "Zoe", "email": "Jane.Doe@example.com" }, "groupConfiguration": { "groupsToOverride": ["group-1", "group-2", "group-3"], "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller1", "arn:aws:iam::123456789012:role/sns_caller2", "arn:aws:iam::123456789012:role/sns_caller3"], "preferredRole": ["arn:aws:iam::123456789012:role/sns_caller"] }, "scopes": [ "aws.cognito.signin.user.admin", "openid", "email", "phone" ] }, "response": { "claimsAndScopeOverrideDetails": [] } }

Contoh acara pembuatan pra token versi dua: Tambahkan klaim dengan objek kompleks

Contoh ini membuat modifikasi berikut pada token pengguna.

  1. Menambahkan klaim nomor, string, boolean, dan JSON tipe ke token ID. Ini adalah satu-satunya perubahan yang disediakan oleh peristiwa pemicu versi dua untuk token ID.

  2. Menambahkan klaim nomor, string, boolean, dan JSON tipe ke token akses.

  3. Menambahkan tiga cakupan ke token akses.

  4. Menekan email dan sub klaim dalam ID dan token akses.

  5. Menekan aws.cognito.signin.user.admin ruang lingkup dalam token akses.

JavaScript
export const handler = function(event, context) { var scopes = ["MyAPI.read", "MyAPI.write", "MyAPI.admin"] var claims = {} claims["aud"]= event.callerContext.clientId; claims["booleanTest"] = false; claims["longTest"] = 9223372036854775807; claims["exponentTest"] = 1.7976931348623157E308; claims["ArrayTest"] = ["test", 9223372036854775807, 1.7976931348623157E308, true]; claims["longStringTest"] = "\{\ \"first_json_block\": \{\ \"key_A\": \"value_A\",\ \"key_B\": \"value_B\"\ \},\ \"second_json_block\": \{\ \"key_C\": \{\ \"subkey_D\": [\ \"value_D\",\ \"value_E\"\ ],\ \"subkey_F\": \"value_F\"\ \},\ \"key_G\": \"value_G\"\ \}\ \}"; claims["jsonTest"] = { "first_json_block": { "key_A": "value_A", "key_B": "value_B" }, "second_json_block": { "key_C": { "subkey_D": [ "value_D", "value_E" ], "subkey_F": "value_F" }, "key_G": "value_G" } }; event.response = { "claimsAndScopeOverrideDetails": { "idTokenGeneration": { "claimsToAddOrOverride": claims, "claimsToSuppress": ["email"] }, "accessTokenGeneration": { "claimsToAddOrOverride": claims, "claimsToSuppress": ["email"], "scopesToAdd": scopes, "scopesToSuppress": ["aws.cognito.signin.user.admin"] } } }; console.info("EVENT response\n" + JSON.stringify(event, (_, v) => typeof v === 'bigint' ? v.toString() : v, 2)) console.info("EVENT response size\n" + JSON.stringify(event, (_, v) => typeof v === 'bigint' ? v.toString() : v).length) // Return to Amazon Cognito context.done(null, 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
{ "version": "2", "triggerSource": "TokenGeneration_HostedAuth", "region": "us-west-2", "userPoolId": "us-west-2_EXAMPLE", "userName": "JaneDoe", "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "request": { "userAttributes": { "sub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "cognito:user_status": "CONFIRMED" "email_verified": "true", "phone_number_verified": "true", "phone_number": "+12065551212", "email": "Jane.Doe@example.com" }, "groupConfiguration": { "groupsToOverride": ["group-1", "group-2", "group-3"], "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller1"], "preferredRole": ["arn:aws:iam::123456789012:role/sns_caller1"] }, "scopes": [ "aws.cognito.signin.user.admin", "phone", "openid", "profile", "email" ] }, "response": { "claimsAndScopeOverrideDetails": [] } }

Versi acara pembuatan token pra satu contoh: Tambahkan klaim baru dan tekan klaim yang ada

Contoh ini menggunakan peristiwa pemicu versi 1 dengan fungsi Lambda pembuatan token pra untuk menambahkan klaim baru dan menekan klaim yang ada.

Node.js
const handler = async (event) => { event.response = { claimsOverrideDetails: { claimsToAddOrOverride: { my_first_attribute: "first_value", my_second_attribute: "second_value", }, claimsToSuppress: ["email"], }, }; return event; }; export { handler };

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 contoh kode ini: Karena contoh kode tidak memproses parameter permintaan apa pun, Anda dapat menggunakan peristiwa pengujian dengan permintaan kosong. Untuk informasi selengkapnya tentang parameter permintaan umum, lihatAcara pemicu Lambda kumpulan pengguna.

JSON
{ "request": {}, "response": {} }

Versi acara pembuatan pra token satu contoh: Ubah keanggotaan grup pengguna

Contoh ini menggunakan peristiwa pemicu versi 1 dengan fungsi Lambda pembuatan token pra untuk memodifikasi keanggotaan grup pengguna.

Node.js
const handler = async (event) => { event.response = { claimsOverrideDetails: { groupOverrideDetails: { groupsToOverride: ["group-A", "group-B", "group-C"], iamRolesToOverride: [ "arn:aws:iam::XXXXXXXXXXXX:role/sns_callerA", "arn:aws:iam::XXXXXXXXX:role/sns_callerB", "arn:aws:iam::XXXXXXXXXX:role/sns_callerC", ], preferredRole: "arn:aws:iam::XXXXXXXXXXX:role/sns_caller", }, }, }; return event; }; export { handler };

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
{ "request": {}, "response": {} }