

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

# Bekerja dengan perangkat pengguna di kumpulan pengguna Anda
<a name="amazon-cognito-user-pools-device-tracking"></a>

Saat Anda masuk ke pengguna kumpulan pengguna lokal dengan API kumpulan pengguna Amazon Cognito, Anda dapat mengaitkan log aktivitas pengguna dari [perlindungan ancaman](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-threat-protection.html) dengan masing-masing perangkat mereka dan, secara opsional, mengizinkan pengguna Anda melewati otentikasi multi-faktor (MFA) jika mereka menggunakan perangkat tepercaya. Amazon Cognito menyertakan kunci perangkat sebagai respons terhadap proses masuk apa pun yang belum menyertakan informasi perangkat. Kunci perangkat ada dalam format`Region_UUID`. Dengan kunci perangkat, library Secure Remote Password (SRP), dan kumpulan pengguna yang mengizinkan autentikasi perangkat, Anda dapat meminta pengguna di aplikasi untuk mempercayai perangkat saat ini dan tidak lagi meminta kode MFA saat masuk.

**Topics**
+ [Menyiapkan perangkat yang diingat](#amazon-cognito-user-pools-setting-up-remembered-devices)
+ [Mendapatkan kunci perangkat](#user-pools-remembered-devices-getting-a-device-key)
+ [Masuk dengan perangkat](#user-pools-remembered-devices-signing-in-with-a-device)
+ [Melihat, memperbarui, dan melupakan perangkat](#user-pools-remembered-devices-viewing-updating-forgetting)

## Menyiapkan perangkat yang diingat
<a name="amazon-cognito-user-pools-setting-up-remembered-devices"></a>

Dengan kumpulan pengguna Amazon Cognito, Anda dapat mengaitkan setiap perangkat pengguna dengan pengenal perangkat unik: kunci perangkat. Saat menampilkan kunci perangkat dan melakukan autentikasi perangkat saat masuk, Anda dapat mengonfigurasi aplikasi dengan alur otentikasi *perangkat tepercaya*. Dalam alur ini, aplikasi Anda dapat menyajikan pilihan kepada pengguna untuk masuk tanpa MFA hingga nanti, sebagaimana ditentukan oleh persyaratan keamanan aplikasi Anda atau preferensi pengguna Anda. Pada akhir periode waktu itu, aplikasi Anda harus mengubah status perangkat menjadi *tidak diingat* dan pengguna harus masuk dengan MFA sampai mereka mengonfirmasi bahwa mereka ingin mengingat perangkat. Misalnya, aplikasi Anda mungkin meminta pengguna untuk mempercayai perangkat selama 30, 60, atau 90 hari. Anda dapat menyimpan tanggal ini dalam atribut khusus dan pada tanggal tersebut, mengubah status perangkat yang diingat. Anda kemudian harus meminta kembali pengguna Anda untuk mengirimkan kode MFA dan mengatur perangkat untuk diingat lagi setelah otentikasi berhasil.

1. Perangkat yang diingat dapat mengganti MFA hanya di kumpulan pengguna dengan MFA aktif.

Saat pengguna masuk dengan perangkat yang diingat, Anda harus melakukan autentikasi perangkat tambahan selama alur autentikasi mereka. Untuk informasi selengkapnya, lihat [Masuk dengan perangkat](#user-pools-remembered-devices-signing-in-with-a-device).

Konfigurasikan kumpulan pengguna Anda untuk mengingat perangkat di menu **Masuk** kumpulan pengguna Anda, di bawah **Pelacakan perangkat**. Saat menyiapkan fungsionalitas perangkat yang diingat melalui konsol Amazon Cognito, Anda memiliki tiga pilihan:**Selalu**, **Pilihan Pengguna**, dan **Tidak**.

**Jangan ingat**  
Kumpulan pengguna Anda tidak meminta pengguna untuk mengingat perangkat saat mereka masuk.

**Selalu ingat**  
Saat aplikasi mengonfirmasi perangkat pengguna, kumpulan pengguna akan selalu mengingat perangkat tersebut dan tidak menampilkan tantangan MFA pada proses login perangkat yang sukses di masa mendatang.

**Keikutsertaan pengguna**  
Saat aplikasi mengonfirmasi perangkat pengguna, kumpulan pengguna tidak secara otomatis menekan tantangan MFA. Anda harus meminta pengguna Anda untuk memilih apakah mereka ingin mengingat perangkat.

Saat Anda memilih **Selalu ingat** atau **Ikut serta Pengguna**, Amazon Cognito menghasilkan kunci dan rahasia pengenal perangkat setiap kali pengguna masuk dari perangkat yang tidak dikenal. Kunci perangkat adalah pengenal awal yang dikirimkan aplikasi ke kumpulan pengguna saat pengguna melakukan autentikasi perangkat.

Dengan setiap perangkat pengguna yang dikonfirmasi, baik diingat secara otomatis atau ikut serta, Anda dapat menggunakan kunci dan rahasia pengenal perangkat untuk mengautentikasi perangkat pada setiap pengguna yang masuk. 

Anda juga dapat mengonfigurasi pengaturan perangkat yang diingat untuk kumpulan pengguna Anda dalam permintaan [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)atau [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API. Untuk informasi lebih lanjut, lihat [DeviceConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-DeviceConfiguration)properti.

API kumpulan pengguna Amazon Cognito memiliki operasi tambahan untuk perangkat yang diingat.

1. [ListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html)dan [AdminListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html)mengembalikan daftar kunci perangkat dan metadatanya untuk pengguna.

1. [GetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetDevice.html)dan [AdminGetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetDevice.html)mengembalikan kunci perangkat dan metadata untuk satu perangkat.

1. [UpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html)dan [AdminUpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateDeviceStatus.html)mengatur perangkat pengguna seperti yang diingat atau tidak diingat.

1. [ForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgetDevice.html)dan [AdminForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminForgetDevice.html)menghapus perangkat yang dikonfirmasi pengguna dari profil mereka.

Operasi API dengan nama yang dimulai untuk `Admin` digunakan dalam aplikasi sisi server dan harus diotorisasi dengan kredensi IAM. Untuk informasi selengkapnya, lihat [Memahami API, OIDC, dan otentikasi halaman login terkelola](authentication-flows-public-server-side.md#user-pools-API-operations).

## Mendapatkan kunci perangkat
<a name="user-pools-remembered-devices-getting-a-device-key"></a>

Kapan pun pengguna Anda masuk dengan API kumpulan pengguna dan tidak menyertakan kunci perangkat dalam parameter autentikasi`DEVICE_KEY`, Amazon Cognito mengembalikan kunci perangkat baru dalam respons. Di aplikasi sisi klien publik Anda, letakkan kunci perangkat di penyimpanan aplikasi sehingga Anda dapat memasukkannya ke dalam permintaan future. Di aplikasi sisi server rahasia Anda, atur cookie browser atau token sisi klien lainnya dengan kunci perangkat pengguna Anda.

Sebelum pengguna Anda dapat masuk dengan perangkat tepercaya mereka, aplikasi Anda harus mengonfirmasi kunci perangkat dan memberikan informasi tambahan. Buat [ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html)permintaan ke Amazon Cognito yang mengonfirmasi perangkat pengguna Anda dengan kunci perangkat, nama yang ramah, pemverifikasi kata sandi, dan garam. Jika Anda mengonfigurasi kumpulan pengguna untuk autentikasi perangkat opt-in, Amazon Cognito merespons permintaan `ConfirmDevice` Anda dengan prompt bahwa pengguna harus memilih apakah akan mengingat perangkat saat ini. Tanggapi dengan pilihan pengguna Anda dalam [UpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html)permintaan. 

Saat mengonfirmasi perangkat pengguna tetapi tidak menyetelnya seperti yang diingat, Amazon Cognito menyimpan asosiasi tersebut tetapi dilanjutkan dengan login non-perangkat saat Anda memberikan kunci perangkat. Perangkat dapat menghasilkan log yang berguna untuk keamanan pengguna dan pemecahan masalah. Perangkat yang dikonfirmasi tetapi tidak diingat tidak memanfaatkan fitur masuk, tetapi memanfaatkan fitur log pemantauan keamanan. Saat Anda mengaktifkan perlindungan ancaman untuk klien aplikasi dan menyandikan sidik jari perangkat ke dalam permintaan Anda, Amazon Cognito mengaitkan peristiwa pengguna dengan perangkat yang dikonfirmasi. 

**Untuk mendapatkan kunci perangkat baru**

1. Mulai sesi login pengguna Anda dengan permintaan [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API.

1. Tanggapi semua tantangan otentikasi [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)hingga Anda menerima token web JSON (JWTs) yang menandai sesi masuk pengguna Anda selesai.

1. Di aplikasi Anda, catat nilai yang ditampilkan Amazon Cognito `NewDeviceMetadata` dalam `InitiateAuth` respons `RespondToAuthChallenge` atau responsnya: `DeviceGroupKey` dan. `DeviceKey`

1. Hasilkan rahasia SRP baru untuk pengguna Anda: garam dan verifikasi kata sandi. Fungsi ini tersedia di SDKs yang menyediakan pustaka SRP.

1. Minta pengguna Anda untuk nama perangkat, atau buat nama dari karakteristik perangkat pengguna Anda.

1. Berikan token akses, kunci perangkat, nama perangkat, dan rahasia SRP pengguna Anda dalam permintaan [ConfirmDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmDevice.html)API. Jika kumpulan pengguna Anda disetel ke **Selalu ingat** perangkat, pendaftaran pengguna Anda selesai.

1. Jika Amazon Cognito merespons `ConfirmDevice` dengan`"UserConfirmationNecessary": true`, minta pengguna Anda untuk memilih apakah mereka ingin mengingat perangkat tersebut. Jika mereka menegaskan bahwa mereka ingin mengingat perangkat, buat permintaan [UpdateDeviceStatus](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateDeviceStatus.html)API dengan token akses pengguna Anda, kunci perangkat, dan`"DeviceRememberedStatus": "remembered"`.

1. Jika Anda telah menginstruksikan Amazon Cognito untuk mengingat perangkat, saat berikutnya mereka masuk, alih-alih tantangan MFA, mereka akan disajikan dengan tantangan. `DEVICE_SRP_AUTH`

## Masuk dengan perangkat
<a name="user-pools-remembered-devices-signing-in-with-a-device"></a>

Setelah Anda mengonfigurasi perangkat pengguna agar diingat, Amazon Cognito tidak lagi mengharuskan mereka untuk mengirimkan kode MFA saat mereka masuk dengan kunci perangkat yang sama. Otentikasi perangkat hanya menggantikan tantangan autentikasi MFA dengan tantangan otentikasi perangkat. Anda tidak dapat memasukkan pengguna hanya dengan autentikasi perangkat. Pengguna Anda harus terlebih dahulu menyelesaikan otentikasi dengan kata sandi mereka atau tantangan khusus. Berikut ini adalah proses otentikasi untuk pengguna pada perangkat yang diingat.

Untuk melakukan autentikasi perangkat dalam alur yang menggunakan [pemicu Lambda tantangan autentikasi kustom](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-challenge.html), teruskan `DEVICE_KEY` parameter dalam permintaan API Anda. [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) Setelah pengguna Anda berhasil menyelesaikan semua tantangan dan `CUSTOM_CHALLENGE` tantangan mengembalikan `issueTokens` nilai`true`, Amazon Cognito mengembalikan satu `DEVICE_SRP_AUTH` tantangan terakhir.

**Untuk masuk dengan perangkat**

1. Ambil kunci perangkat pengguna Anda dari penyimpanan klien.

1. Mulai sesi login pengguna Anda dengan permintaan [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)API. Pilih `AuthFlow` dari`USER_SRP_AUTH`,`REFRESH_TOKEN_AUTH`,`USER_PASSWORD_AUTH`, atau`CUSTOM_AUTH`. Di`AuthParameters`, tambahkan kunci perangkat pengguna Anda ke `DEVICE_KEY` parameter, dan sertakan parameter lain yang diperlukan untuk alur masuk yang Anda pilih.

   1. Anda juga dapat meneruskan `DEVICE_KEY` parameter `PASSWORD_VERIFIER` respons terhadap tantangan otentikasi.

1. Selesaikan respons tantangan sampai Anda menerima `DEVICE_SRP_AUTH` tantangan dalam respons.

1. Dalam permintaan [RespondToAuthChallenge](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html)API, kirim `ChallengeName` dari `DEVICE_SRP_AUTH` dan parameter untuk`USERNAME`,`DEVICE_KEY`, dan`SRP_A`.

1. Amazon Cognito merespons dengan sebuah tantangan. `DEVICE_PASSWORD_VERIFIER` Respons tantangan ini mencakup nilai-nilai untuk `SECRET_BLOCK` dan`SRP_B`.

1. Dengan pustaka SRP Anda, buat dan kirimkan`PASSWORD_CLAIM_SIGNATURE`,`PASSWORD_CLAIM_SECRET_BLOCK`,`TIMESTAMP`,`USERNAME`, dan `DEVICE_KEY` parameter. Kirimkan ini dalam `RespondToAuthChallenge` permintaan tambahan.

1. Selesaikan tantangan tambahan sampai Anda menerima tantangan pengguna JWTs.

Pseudocode berikut menunjukkan cara menghitung nilai untuk respons tantangan Anda`DEVICE_PASSWORD_VERIFIER`. Untuk otentikasi SRP dengan perangkat, buat rahasia SRP *baru* untuk pengguna Anda: kata sandi entropi tinggi baru, garam`DeviceSecret`, dan pemverifikasi kata sandi terkait. Nilai-nilai ini berbeda dari password, salt, dan verifier yang digunakan untuk otentikasi SRP pengguna. Mereka hanya digunakan untuk otentikasi perangkat dan hanya disimpan di perangkat. Fungsi untuk menghasilkan rahasia SRP untuk perangkat pengguna tersedia di [pustaka SRP](https://github.com/secure-remote-password/implementations) yang tersedia dalam berbagai macam. SDKs

```
PASSWORD_CLAIM_SECRET_BLOCK = SECRET_BLOCK
TIMESTAMP = "Tue May 7 00:09:40 UTC 2025"
k = SHA256(N || g) as a non-negative integer in big-endian
u = SHA256(SRP_A || SRP_B) as a non-negative integer in big-endian
x = SHA256(salt || SHA256(DeviceGroupKey || DeviceKey || ":" || DeviceSecret)) as a non-negative integer in big-endian
S_USER = (SRP_B - k * g^x)^(a + u * x) % N
K_USER = HKDF_HMAC_SHA256(salt=u, ikm=S_USER, info="Caldera Derived Key", length=16 bytes)
PASSWORD_CLAIM_SIGNATURE = Base64(HMAC_SHA256(key=K_USER, message=(DeviceGroupKey || DeviceKey || PASSWORD_CLAIM_SECRET_BLOCK || TIMESTAMP)))
```

## Melihat, memperbarui, dan melupakan perangkat
<a name="user-pools-remembered-devices-viewing-updating-forgetting"></a>

Anda dapat menerapkan fitur berikut di aplikasi Anda dengan Amazon Cognito API.

1. Menampilkan informasi tentang perangkat pengguna saat ini.

1. Menampilkan daftar semua perangkat pengguna Anda.

1. Lupakan perangkat.

1. Perbarui status perangkat yang diingat.

Token akses yang mengotorisasi permintaan API dalam deskripsi berikut harus menyertakan ruang lingkup. `aws.cognito.signin.user.admin` Amazon Cognito menambahkan klaim untuk cakupan ini ke semua token akses yang Anda hasilkan dengan API kumpulan pengguna Amazon Cognito. Pihak ketiga IdPs harus mengelola perangkat dan MFA secara terpisah untuk penggunanya yang mengautentikasi ke Amazon Cognito. Dalam login terkelola, Anda dapat meminta `aws.cognito.signin.user.admin` ruang lingkup, tetapi login terkelola secara otomatis menambahkan informasi perangkat ke log pengguna keamanan tingkat lanjut, dan tidak menawarkan untuk mengingat perangkat.

**Menampilkan informasi tentang perangkat**  
Anda dapat menanyakan informasi tentang perangkat pengguna untuk menentukan apakah masih digunakan saat ini. Misalnya, Anda mungkin ingin menonaktifkan perangkat yang diingat setelah perangkat tersebut tidak masuk selama 90 hari. 
+ Untuk menampilkan informasi perangkat pengguna Anda di aplikasi klien-publik, kirimkan kunci akses dan kunci perangkat pengguna Anda dalam permintaan [GetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetDevice.html)API.
+ Untuk menampilkan informasi perangkat pengguna Anda di aplikasi klien rahasia, tandatangani permintaan [AdminGetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetDevice.html)API dengan AWS kredensi dan kirimkan nama pengguna, kunci perangkat, dan kumpulan pengguna Anda.

**Menampilkan daftar semua perangkat pengguna Anda**  
Anda dapat menampilkan daftar semua perangkat pengguna Anda dan propertinya. Misalnya, Anda mungkin ingin memverifikasi bahwa perangkat saat ini cocok dengan perangkat yang diingat. 
+ Di aplikasi klien-publik, kirimkan token akses pengguna Anda dalam permintaan [ListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListDevices.html)API.
+ Di aplikasi klien rahasia, tandatangani permintaan [AdminListDevices](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminListDevices.html)API dengan AWS kredensional dan kirimkan nama pengguna dan kumpulan pengguna Anda.

**Lupakan perangkat**  
Anda dapat menghapus kunci perangkat pengguna. Anda mungkin ingin melakukan ini ketika Anda menentukan bahwa pengguna Anda tidak lagi menggunakan perangkat, atau ketika Anda mendeteksi aktivitas yang tidak biasa dan ingin meminta pengguna untuk menyelesaikan MFA lagi. Untuk mendaftarkan perangkat lagi nanti, Anda harus membuat dan menyimpan kunci perangkat baru.
+ Di aplikasi klien-publik, kirimkan kunci perangkat dan token akses pengguna Anda dalam permintaan [ForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgetDevice.html)API.
+ Di aplikasi klien rahasia, kirimkan kunci perangkat dan token akses pengguna Anda dalam [AdminForgetDevice](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminForgetDevice.html)permintaan API.