Anda harus menjadi administrator sistem Amazon Chime untuk menyelesaikan langkah-langkah dalam panduan ini. Jika Anda memerlukan bantuan dengan klien desktop Amazon Chime, aplikasi web, atau aplikasi seluler, lihat Mendapatkan dukungan di Panduan Pengguna Amazon Chime.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Otentikasi permintaan chatbot
Anda dapat mengautentikasi permintaan yang dikirim ke chatbot Anda dari ruang obrolan Amazon Chime. Untuk melakukan ini, hitung tanda tangan berdasarkan permintaan. Kemudian, validasi bahwa tanda tangan yang dihitung cocok dengan yang ada di header permintaan. Amazon Chime menggunakan hash HMAC SHA256 untuk menghasilkan tanda tangan.
Jika chatbot Anda dikonfigurasi untuk Amazon Chime menggunakan titik akhir HTTPS keluar, gunakan langkah autentikasi berikut.
Untuk memvalidasi permintaan yang ditandatangani dari Amazon Chime untuk chatbot dengan titik akhir HTTPS keluar yang dikonfigurasi
DapatkanTanda Tangan Loncengheader dari permintaan HTTP.
DapatkanLonceng Permintaan-TimestampHeader danbadandari permintaan. Kemudian, gunakan bilah vertikal sebagai pembatas antara dua elemen untuk membentuk string.
GunakanSecurityTokendari CreateBot respon sebagai kunci awalHMAC_SHA_256, dan hash string yang Anda buat di langkah 2.
Mengkodekan byte hash dengan encoder Base64 ke string tanda tangan.
Bandingkan tanda tangan yang dihitung ini dengan yang ada diTanda Tangan Loncengsundulan
Contoh kode berikut menunjukkan cara menghasilkan tanda tangan menggunakan Java.
private final String DELIMITER = "|"; private final String HMAC_SHA_256 = "HmacSHA256"; private String generateSignature(String securityToken, String requestTime, String requestBody) { try { final Mac mac = Mac.getInstance(HMAC_SHA_256); SecretKeySpec key = new SecretKeySpec(securityToken.getBytes(UTF_8), HMAC_SHA_256); mac.init(key); String data = requestTime + DELIMITER + requestBody; byte[] rawHmac = mac.doFinal(data.getBytes(UTF_8)); return Base64.getEncoder().encodeToString(rawHmac); } catch (Exception e) { throw e; } }
Titik akhir HTTPS keluar harus menanggapi permintaan Amazon Chime dengan200 OK
dalam waktu 2 detik. Jika tidak, permintaan gagal. Jika titik akhir HTTPS keluar tidak tersedia setelah 2 detik, mungkin karena batas waktu Koneksi atau Baca, atau jika Amazon Chime menerima kode respons 5xx, Amazon Chime akan mencoba ulang permintaan tersebut dua kali. Coba lagi pertama dikirim 200 milidetik setelah permintaan awal gagal. Percobaan kedua dikirim 400 milidetik setelah percobaan ulang sebelumnya gagal. Jika titik akhir HTTPS keluar masih tidak tersedia setelah percobaan ulang kedua, permintaan gagal.
catatan
TheLonceng Permintaan-Timestampberubah setiap kali permintaan dicoba ulang.
Jika chatbot Anda dikonfigurasi untuk Amazon Chime menggunakan ARN fungsi Lambda, gunakan langkah autentikasi berikut.
Untuk memvalidasi permintaan yang ditandatangani dari Amazon Chime untuk chatbot dengan fungsi Lambda ARN yang dikonfigurasi
DapatkanTanda Tangan LoncengdanLonceng Permintaan-Timestampdari permintaan LambdaClientContext, dalam format JSON yang dikodekan Base64.
{ "Chime-Signature" : "1234567890", "Chime-Request-Timestamp" : "2019-04-04T21:30:43.181Z" }
Dapatkanbadanpermintaan dari payload permintaan.
GunakanSecurityTokendari
CreateBot
respon sebagai kunci awalHMAC_SHA_256, dan hash string yang Anda buat.Mengkodekan byte hash dengan encoder Base64 ke string tanda tangan.
Bandingkan tanda tangan yang dihitung ini dengan yang ada diTanda Tangan Loncengsundulan
Jikacom.amazonaws.SdkClientException
terjadi selama pemanggilan Lambda, Amazon Chime mencoba ulang permintaan dua kali.