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_0
Peristiwa 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_0
Pemicu memberikan parameter untuk modifikasi token ID. V2_0
Pemicu memberikan parameter untuk yang berikut ini.
-
Fungsi
V1_0
pemicu. -
Kemampuan untuk menyesuaikan token akses.
-
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_verified
updated_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 nilaiscopesToSuppress
respons, tetapi Anda tidak dapat memodifikasiscope
klaim secara langsung. Anda tidak dapat menambahkan cakupan yang dimulaiaws.cognito
, termasuk cakupanaws.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.
Sumber daya lainnya
Topik
- Sumber pemicu Lambda generasi pra token
- Parameter pemicu Lambda generasi pra token
- Contoh peristiwa pemicu pra token versi dua: Menambahkan dan menekan klaim, cakupan, dan grup
- Contoh acara pembuatan pra token versi dua: Tambahkan klaim dengan objek kompleks
- Versi acara pembuatan token pra satu contoh: Tambahkan klaim baru dan tekan klaim yang ada
- Versi acara pembuatan pra token satu contoh: Ubah keanggotaan grup pengguna
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.
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 termasuk |
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. |
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 |
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 |
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 Dalam acara versi 2, elemen ini muncul di bawah keduanya |
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 |
1 |
groupOverrideDetails |
Objek output yang berisi konfigurasi grup saat ini. Objek termasuk Fungsi Anda menggantikan ID Amazon Cognito dan token akses keduanya berisi klaim. |
1 |
scopesToAdd |
Daftar cakupan OAuth 2.0 yang ingin Anda tambahkan ke |
2 |
scopesToSuppress |
Daftar cakupan OAuth 2.0 yang ingin Anda hapus dari |
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.
-
Menetapkan mereka
family_name
sebagaiDoe
dalam token ID. -
Mencegah
email
danphone_number
klaim agar tidak muncul di token ID. -
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"
. -
Menetapkan
cognito:preferred_role
klaim token ID mereka kearn:aws:iam::123456789012:role/sns_caller
. -
Menambahkan cakupan
openid
,email
, dansolar-system-data/asteroids.add
ke token akses. -
Menekan ruang lingkup
phone_number
danaws.cognito.signin.user.admin
dari token akses. Penghapusanphone_number
mencegah pengambilan nomor telepon pengguna dariuserInfo
. Penghapusanaws.cognito.signin.user.admin
mencegah API permintaan oleh pengguna untuk membaca dan memodifikasi profil mereka sendiri dengan kumpulan pengguna Amazon Cognito. APIcatatan
Penghapusan
phone_number
dari cakupan hanya mencegah pengambilan nomor telepon pengguna jika cakupan yang tersisa dalam token akses termasukopenid
dan setidaknya satu ruang lingkup standar lagi. Untuk informasi selengkapnya, lihat Tentang cakupan. -
Menetapkan
cognito:groups
klaim ID dan token akses mereka ke"new-group-A","new-group-B","new-group-C"
.
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:
Contoh acara pembuatan pra token versi dua: Tambahkan klaim dengan objek kompleks
Contoh ini membuat modifikasi berikut pada token pengguna.
-
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.
-
Menambahkan klaim nomor, string, boolean, dan JSON tipe ke token akses.
-
Menambahkan tiga cakupan ke token akses.
-
Menekan
email
dansub
klaim dalam ID dan token akses. -
Menekan
aws.cognito.signin.user.admin
ruang lingkup dalam token akses.
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:
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.
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.
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.
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: