Token perangkat lunak TOTP MFA - Amazon Cognito

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

Token perangkat lunak TOTP MFA

Saat Anda mengatur MFA token perangkat lunak TOTP di kumpulan pengguna Anda, pengguna Anda masuk dengan nama pengguna dan kata sandi, lalu menggunakan TOTP untuk menyelesaikan otentikasi. Setelah pengguna Anda menetapkan dan memverifikasi nama pengguna dan kata sandi, mereka dapat mengaktifkan token perangkat lunak TOTP untuk MFA. Jika aplikasi Anda menggunakan UI yang dihosting Amazon Cognito untuk login pengguna, pengguna Anda akan mengirimkan nama pengguna dan kata sandi mereka, lalu mengirimkan kata sandi TOTP pada halaman login tambahan.

Anda dapat mengaktifkan TOTP MFA untuk kumpulan pengguna di konsol Amazon Cognito, atau Anda dapat menggunakan operasi API Amazon Cognito. Di tingkat kumpulan pengguna, Anda dapat menelepon SetUserPoolMfaConfiguntuk mengkonfigurasi MFA dan mengaktifkan TOTP MFA.

catatan

Jika Anda belum mengaktifkan MFA token perangkat lunak TOTP untuk kumpulan pengguna, Amazon Cognito tidak dapat menggunakan token untuk mengaitkan atau memverifikasi pengguna. Dalam hal ini, pengguna menerima SoftwareTokenMFANotFoundException pengecualian dengan deskripsiSoftware Token MFA has not been enabled by the userPool. Jika Anda menonaktifkan token perangkat lunak MFA untuk kumpulan pengguna nanti, pengguna yang sebelumnya mengaitkan dan memverifikasi token TOTP dapat terus menggunakannya untuk MFA.

Mengonfigurasi TOTP untuk pengguna Anda adalah proses multi-langkah di mana pengguna Anda menerima kode rahasia yang divalidasi dengan memasukkan kata sandi satu kali. Selanjutnya, Anda dapat mengaktifkan TOTP MFA untuk pengguna Anda atau mengatur TOTP sebagai metode MFA pilihan untuk pengguna Anda.

Saat mengonfigurasi kumpulan pengguna agar mewajibkan TOTP MFA dan pengguna mendaftar ke aplikasi Anda di UI yang dihosting, Amazon Cognito akan mengotomatiskan proses pengguna. Amazon Cognito meminta pengguna Anda untuk memilih metode MFA, menampilkan kode QR untuk menyiapkan aplikasi autentikator mereka, dan memverifikasi pendaftaran MFA mereka. Di kumpulan pengguna tempat Anda mengizinkan pengguna untuk memilih antara SMS dan TOTP MFA, Amazon Cognito juga memberi pengguna Anda pilihan metode. Untuk informasi selengkapnya tentang pengalaman pendaftaran UI yang dihosting, lihatCara mendaftar akun baru di UI yang dihosting Amazon Cognito.

penting

Bila Anda memiliki ACL AWS WAF web yang terkait dengan kumpulan pengguna, dan aturan di ACL web Anda menyajikan CAPTCHA, ini dapat menyebabkan kesalahan yang tidak dapat dipulihkan dalam pendaftaran TOTP UI yang dihosting. Untuk membuat aturan yang memiliki tindakan CAPTCHA dan tidak memengaruhi TOTP UI yang dihosting, lihat. Mengonfigurasi ACL AWS WAF web Anda untuk MFA TOTP UI yang dihosting Untuk informasi selengkapnya tentang ACL AWS WAF web dan Amazon Cognito, lihat. Mengaitkan ACL AWS WAF web dengan kumpulan pengguna

Untuk mengimplementasikan TOTP MFA di UI khusus tempat Anda menggunakan Amazon Cognito API, lihat. Mengonfigurasi MFA untuk pengguna di API kumpulan pengguna Amazon Cognito

Untuk menambahkan MFA ke kolam pengguna Anda, lihat Menambahkan MFA ke kumpulan pengguna.

Pertimbangan dan batasan TOTP MFA

  1. Amazon Cognito mendukung token perangkat lunak MFA melalui aplikasi autentikator yang menghasilkan kode TOTP. Amazon Cognito tidak mendukung MFA berbasis perangkat keras.

  2. Ketika kumpulan pengguna Anda memerlukan TOTP untuk pengguna yang belum mengonfigurasinya, pengguna Anda menerima token akses satu kali yang dapat digunakan aplikasi Anda untuk mengaktifkan TOTP MFA bagi pengguna. Upaya masuk berikutnya gagal hingga pengguna Anda mendaftarkan faktor masuk TOTP tambahan.

    • Pengguna yang mendaftar di kumpulan pengguna Anda dengan operasi SignUp API atau melalui UI yang dihosting akan menerima token satu kali saat pengguna menyelesaikan pendaftaran.

    • Setelah Anda membuat pengguna, dan pengguna menetapkan kata sandi awal mereka, Amazon Cognito mengeluarkan token satu kali dari UI yang dihosting ke pengguna. Jika Anda menetapkan kata sandi permanen untuk pengguna, Amazon Cognito mengeluarkan token satu kali saat pengguna pertama kali masuk.

    • Amazon Cognito tidak mengeluarkan token satu kali ke pengguna yang dibuat administrator yang masuk dengan operasi atau API. InitiateAuthAdminInitiateAuth Setelah pengguna Anda berhasil dalam tantangan untuk mengatur kata sandi awal mereka, atau jika Anda menetapkan kata sandi permanen untuk pengguna, Amazon Cognito segera menantang pengguna untuk mengatur MFA.

  3. Jika pengguna di kumpulan pengguna yang memerlukan MFA telah menerima token akses satu kali tetapi belum menyiapkan TOTP MFA, pengguna tidak dapat masuk dengan UI yang dihosting sampai mereka menyiapkan MFA. Alih-alih token akses, Anda dapat menggunakan nilai session respons dari MFA_SETUP tantangan ke InitiateAuthatau AdminInitiateAuthdalam AssociateSoftwareTokenpermintaan.

  4. Jika pengguna Anda telah menyiapkan TOTP, mereka dapat menggunakannya untuk MFA, bahkan jika Anda menonaktifkan TOTP untuk kumpulan pengguna nanti.

  5. Amazon Cognito hanya menerima TOTP dari aplikasi autentikator yang menghasilkan kode dengan fungsi hash SHA-1. Kode yang dihasilkan dengan hashing SHA-256 mengembalikan kesalahan. Code mismatch

Mengonfigurasi MFA untuk pengguna di API kumpulan pengguna Amazon Cognito

Saat pengguna pertama kali masuk, aplikasi Anda menggunakan token akses satu kali untuk membuat kunci pribadi TOTP dan menyajikannya kepada pengguna Anda dalam format teks atau kode QR. Pengguna Anda mengonfigurasi aplikasi autentikatornya dan menyediakan TOTP untuk upaya masuk berikutnya. Aplikasi Anda atau UI yang dihosting menyajikan TOTP ke Amazon Cognito dalam respons tantangan MFA.

Kaitkan token perangkat lunak TOTP

Untuk mengaitkan token TOTP, kirimkan kode rahasia kepada pengguna Anda yang harus mereka validasi dengan kata sandi satu kali. Mengaitkan token membutuhkan tiga langkah.

  1. Saat pengguna Anda memilih token perangkat lunak TOTP MFA, panggil AssociateSoftwareTokenuntuk mengembalikan kode kunci rahasia bersama unik yang dihasilkan untuk akun pengguna. Anda dapat mengotorisasi AssociateSoftwareToken dengan token akses atau string sesi.

  2. Aplikasi Anda menyajikan kunci pribadi kepada pengguna, atau kode QR yang Anda hasilkan dari kunci pribadi. Pengguna Anda harus memasukkan kunci ke dalam aplikasi penghasil total seperti Google Authenticator. Anda dapat menggunakan libqrencode untuk menghasilkan kode QR.

  3. Pengguna Anda memasukkan kunci, atau memindai kode QR ke aplikasi autentikator seperti Google Authenticator, dan aplikasi mulai menghasilkan kode.

Verifikasi token TOTP

Selanjutnya, verifikasi token TOTP. Minta kode sampel dari pengguna Anda dan berikan ke layanan Amazon Cognito untuk mengonfirmasi bahwa pengguna berhasil membuat kode TOTP, sebagai berikut.

  1. Aplikasi Anda meminta pengguna Anda untuk kode untuk menunjukkan bahwa mereka telah menyiapkan aplikasi autentikator mereka dengan benar.

  2. Aplikasi autentikator pengguna menampilkan kata sandi sementara. Aplikasi autentikator mendasarkan kata sandi pada kunci rahasia yang Anda berikan kepada pengguna.

  3. Pengguna Anda memasukkan kata sandi sementara mereka. Aplikasi Anda meneruskan kata sandi sementara ke Amazon Cognito dalam permintaan VerifySoftwareToken API.

  4. Amazon Cognito telah mempertahankan kunci rahasia yang terkait dengan pengguna, dan menghasilkan TOTP dan membandingkannya dengan yang disediakan pengguna Anda. Jika cocok, VerifySoftwareToken mengembalikan SUCCESS respons.

  5. Amazon Cognito mengaitkan faktor TOTP dengan pengguna.

  6. Jika VerifySoftwareToken operasi mengembalikan ERROR respons, pastikan jam pengguna sudah benar dan belum melebihi jumlah percobaan ulang maksimum. Amazon Cognito menerima token TOTP yang berada dalam waktu 30 detik sebelum atau sesudah upaya, untuk memperhitungkan kemiringan jam kecil. Setelah Anda menyelesaikan masalah, coba VerifySoftwareToken operasi lagi.

Masuk dengan TOTP MFA

Pada titik ini, pengguna Anda masuk dengan kata sandi satu kali berbasis waktu. Prosesnya adalah sebagai berikut.

  1. Pengguna Anda memasukkan nama pengguna dan kata sandi mereka untuk masuk ke aplikasi klien Anda.

  2. Tantangan MFA TOTP dipanggil, dan pengguna Anda diminta oleh aplikasi Anda untuk memasukkan kata sandi sementara.

  3. Pengguna Anda mendapatkan kata sandi sementara dari aplikasi penghasil TOTP terkait.

  4. Pengguna Anda memasukkan kode TOTP ke aplikasi klien Anda. Aplikasi Anda akan memberitahukan layanan Amazon Cognito untuk memverifikasinya. Untuk setiap login, RespondToAuthChallengeharus dipanggil untuk mendapatkan respons terhadap tantangan otentikasi TOTP yang baru.

  5. Jika token diverifikasi oleh Amazon Cognito, masuk berhasil dan pengguna Anda melanjutkan dengan alur autentikasi.

Hapus token TOTP

Terakhir, aplikasi Anda harus mengizinkan pengguna untuk menonaktifkan konfigurasi TOTP mereka. Saat ini, Anda tidak dapat menghapus token perangkat lunak TOTP pengguna. Untuk mengganti token perangkat lunak pengguna Anda, kaitkan dan verifikasi token perangkat lunak baru. Untuk menonaktifkan TOTP MFA bagi pengguna, SetUserhubungi MFAReference untuk memodifikasi pengguna Anda agar tidak menggunakan MFA, atau hanya SMS MFA.

  1. Buat antarmuka di aplikasi Anda untuk pengguna yang ingin mengatur ulang MFA. Minta pengguna di antarmuka ini untuk memasukkan kata sandi mereka.

  2. Jika Amazon Cognito mengembalikan tantangan MFA TOTP, perbarui preferensi MFA pengguna Anda dengan MFAReference. SetUser

  3. Di aplikasi Anda, komunikasikan kepada pengguna bahwa mereka telah menonaktifkan MFA dan minta mereka untuk masuk lagi.

Mengonfigurasi ACL AWS WAF web Anda untuk MFA TOTP UI yang dihosting

Bila Anda memiliki ACL AWS WAF web yang terkait dengan kumpulan pengguna, dan aturan di ACL web Anda menyajikan CAPTCHA, ini dapat menyebabkan kesalahan yang tidak dapat dipulihkan dalam pendaftaran TOTP UI yang dihosting. AWS WAF Aturan CAPTCHA hanya memengaruhi TOTP MFA di UI yang dihosting dengan cara ini. SMS MFA tidak terpengaruh.

Amazon Cognito menampilkan kesalahan berikut ketika aturan CAPTCHA Anda tidak mengizinkan pengguna menyelesaikan penyiapan TOTP MFA.

Permintaan tidak diizinkan karena captcha WAF.

Kesalahan ini terjadi saat AWS WAF meminta CAPTCHA sebagai respons AssociateSoftwareTokendan permintaan VerifySoftwareTokenAPI yang dibuat oleh kumpulan pengguna Anda di latar belakang. Untuk membuat aturan yang memiliki tindakan CAPTCHA dan tidak memengaruhi TOTP UI yang dihosting, kecualikan nilai x-amzn-cognito-operation-name header AssociateSoftwareToken dan VerifySoftwareToken dari tindakan CAPTCHA dalam aturan Anda.

Screenshot berikut menunjukkan contoh AWS WAF aturan yang menerapkan tindakan CAPTCHA untuk semua permintaan yang tidak memiliki nilai x-amzn-cognito-operation-name header atau. AssociateSoftwareToken VerifySoftwareToken

Screenshot dari AWS WAF aturan yang menerapkan tindakan CAPTCHA untuk semua permintaan yang tidak memiliki nilai x-amzn-cognito-operation-name header atau. AssociateSoftwareToken VerifySoftwareToken

Untuk informasi selengkapnya tentang ACL AWS WAF web dan Amazon Cognito, lihat. Mengaitkan ACL AWS WAF web dengan kumpulan pengguna