Konfigurasikan Cognito untuk mengirim email melalui pihak ketiga seperti SendGrid dengan cara yang benar

Saya telah mencoba menjalankan fungsi pesan khusus untuk mengirim email melalui SendGrid, itu berhasil tetapi saya tidak punya cara untuk menghentikan AWS mengirim melalui email mereka. Saya telah mencoba menyetel messageAction ke SUPPRESS tetapi muncul masalah lain. Tidak ada dukungan untuk pendaftaran mandiri karena messageAction hanya untuk fungsi adminCreateUser. Apakah saya melewatkan sesuatu atau saya tidak melakukannya dengan benar?


person Kim Toston    schedule 25.11.2019    source sumber


Jawaban (4)


Pemicu Lambda Pengirim Kustom caranya menggunakan penyedia layanan notifikasi pihak ke 3.

Dokumen Cognito saat ini kurang (langkah-langkahnya hilang, kode Lambda harus diperbaiki setelah menyalin dari contoh, tidak ada instruksi tentang cara menerapkan dengan CloudFormation, ...).

Ikhtisar langkah-langkah tingkat tinggi:

  1. Buat kunci KMS simetris.
  2. Buat fungsi Lambda. Berikan izin kepada Lambda untuk kms:Decrypt kuncinya. Berikan ARN kunci sebagai variabel lingkungan.
  3. Buat Kolam Pengguna dan Klien Kolam Pengguna. Untuk kumpulan, konfigurasikan LambdaConfig yang menyediakan ARN Lambda dan KMS Key.
  4. Di dalam kode, dekripsi kode notifikasi menggunakan kunci yang diteruskan dalam variabel env.
  5. Kirim kode notifikasi menggunakan API pihak ketiga (misalnya Twilio Sendgrid).

Perkakas (per Maret 2021):

  • Konsol Cognito tidak mendukung pemicu baru
  • AWS CLI mendukung pemicu baru
  • Dokumen CloudFormation mengatakan pemicu tidak didukung, namun kenyataannya berfungsi
  • Terraform belum mendukung pengaturan pemicu baru (ada solusinya)

Saya telah membuat blog tentang proses menyiapkan Pemicu Lambda Email Khusus dengan CloudFormation dan Terraform: Kirim email AWS Cognito dengan ESP pihak ketiga.

person Max Ivanov    schedule 10.03.2021
comment
terima kasih telah menulis ini, sepertinya AWS ingin kami melakukan crowdsourcing dokumen untuk cognito akhir-akhir ini - person Ravenscar; 10.03.2021

Tampaknya kini Cognito mulai mendukung hal tersebut.

Cognito menyediakan dua pemicu Lambda CustomEmailSender dan CustomSMSSender untuk mengaktifkan notifikasi email dan SMS pihak ketiga.1


1 Sumber dari dokumen AWS Cognito

person Kamahl    schedule 07.01.2021
comment
@10Repsaysgetvaccinated Ini Jawabannya. Dikatakan bahwa itu didukung sekarang. Tautan ini hanya referensi. - person Scratte; 07.01.2021
comment
@Scratte Saya masih tidak menyukai jawabannya.... apakah hasil edit saya oke? - person 10 Rep; 07.01.2021
comment
@10Repsaysgetvaccinated Suntingan yang bagus :) - person Scratte; 07.01.2021

Cognito saat ini tidak mendukung pengiriman email menggunakan layanan pihak ketiga. Anda tidak dapat menghentikan pengiriman email untuk berbagai skenario seperti pendaftaran pengguna atau lupa kata sandi dengan cara yang bersih.

person stackOp    schedule 15.06.2020

Cognito baru-baru ini memulai dukungan untuk mengizinkan pengguna mengirim email melalui pihak ketiga. Anda harus melakukan ini melalui lambda jadi berikut langkah-langkahnya:

  1. Buat lambda yang akan memanggil penyedia email Anda untuk mengirim email/meneruskan data

  2. Berikan izin kinesis ke peran fungsi lambda yang Anda buat

  3. Buat kunci KMS simetris

  4. Tambahkan peran fungsi lambda ke daftar kunci pengguna

  5. Tambahkan KEY_ID dan KEY_ALIAS di lambda lebih disukai sebagai variabel env

  6. Berikan izin pada fungsi lambda untuk memanggil cognito menggunakan cli

    izin tambahan aws lambda --nama fungsi YOURLAMBDAARN --statement-id CognitoLambdaInvokeAccess --action lambda:InvokeFunction --principal cognito-idp.amazonaws.com

  7. Siapkan cognito Anda Ini akan mengatur ulang pengaturan cognito jadi lihat apa yang diaktifkan terlebih dahulu

    aws cognito-idp update-user-pool --user-pool-id yourpoolid --lambda-config PreSignUp=oranyofyourtriggers,CustomEmailSender={LambdaVersion=V1_0,LambdaArn=yourlambdaarn},KMSKeyID=keyarn Anda

perintah di atas akan mengatur ulang cognito sehingga semua pemicu jika ada yang digunakan sebelumnya harus diatur sekarang di MFA dan verifikasi, di atribut apa untuk memverifikasi pilih email (dan pengaturan sms dan berikan peran jika itu digunakan sebelumnya) dan simpan perubahan tersebut

person Nishith    schedule 14.04.2021