Segarkan token - Amazon Cognito

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

Segarkan token

Anda dapat menggunakan token refresh untuk mengambil ID baru dan token akses. Secara default, token refresh kedaluwarsa 30 hari setelah pengguna aplikasi Anda masuk ke kolam pengguna Anda. Ketika Anda membuat aplikasi untuk kolam pengguna Anda, Anda dapat mengatur aplikasi refresh token kedaluwarsa untuk setiap nilai antara 60 menit dan 10 tahun.

Mendapatkan akses baru dan token identitas dengan token penyegaran

Amazon Cognito mengeluarkan token refresh sebagai respons terhadap otentikasi yang berhasil dengan alur kode otorisasi login terkelola dan dengan operasi API atau metode SDK. Token penyegaran mengembalikan ID baru dan token akses, dan secara opsional token penyegaran baru. Anda dapat menggunakan token penyegaran dengan cara berikut.

GetTokensFromRefreshToken

Operasi GetTokensFromRefreshTokenAPI mengeluarkan ID baru dan token akses dari token penyegaran yang valid. Anda juga mendapatkan token penyegaran baru jika Anda telah mengaktifkan rotasi token penyegaran.

InitiateAuth dan AdminitiateAuth

Operasi AdminInitiateAuthatau InitiateAuthAPI menyertakan alur REFRESH_TOKEN_AUTH otentikasi. Dalam alur ini, Anda meneruskan token penyegaran dan mendapatkan ID baru dan token akses. Anda tidak dapat mengautentikasi dengan klien REFRESH_TOKEN_AUTH di aplikasi dengan mengaktifkan rotasi token penyegaran.

OAuth titik akhir token

Titik akhir token di kumpulan pengguna dengan domain memiliki jenis refresh_token hibah yang mengeluarkan ID baru, akses, dan secara opsional (dengan rotasi token penyegaran) menyegarkan token dari token penyegaran yang valid.

Segarkan rotasi token

Dengan rotasi token refresh, Anda dapat mengonfigurasi kumpulan pengguna secara opsional untuk membatalkan token penyegaran asli dan mengeluarkan token penyegaran baru dengan setiap penyegaran token. Saat pengaturan ini diaktifkan, setiap permintaan yang berhasil dalam semua bentuk penyegaran token mengembalikan ID baru, akses, dan token penyegaran. Token penyegaran baru berlaku untuk sisa durasi token penyegaran asli. Anda dapat mengonfigurasi klien aplikasi untuk memutar token penyegaran atau untuk membawa token penyegaran asli. Untuk memungkinkan percobaan ulang untuk durasi singkat, Anda juga dapat mengonfigurasi masa tenggang untuk token penyegaran asli hingga 60 detik.

Hal-hal yang perlu diketahui tentang rotasi token refresh
  • Setelah Anda mengaktifkan rotasi token refresh, klaim baru ditambahkan dalam token web JSON dari kumpulan pengguna Anda. Klaim origin_jti dan jti ditambahkan ke token akses dan ID. Klaim ini meningkatkan ukuran JWTs.

  • Segarkan rotasi token tidak kompatibel dengan alur REFRESH_TOKEN_AUTH otentikasi. Untuk menerapkan rotasi token refresh, Anda harus menonaktifkan alur autentikasi ini di klien aplikasi Anda dan merancang aplikasi Anda untuk mengirimkan permintaan token-refresh dengan operasi GetTokensFromRefreshTokenAPI atau metode SDK yang setara.

  • Dengan rotasi token refresh tidak aktif, Anda dapat menyelesaikan permintaan penyegaran token dengan salah satu atau. GetTokensFromRefreshToken REFRESH_TOKEN_AUTH

  • Saat mengingat perangkat aktif di kumpulan pengguna, Anda harus memberikan kunci perangkat dalam GetTokensFromRefreshToken permintaan. Jika pengguna Anda tidak memiliki kunci perangkat terkonfirmasi yang dikirimkan aplikasi Anda dalam permintaan autentikasi awal, Amazon Cognito mengeluarkan yang baru. Untuk menyegarkan token dalam konfigurasi ini, Anda harus memberikan kunci perangkat, baik yang Anda tentukan AuthParameters atau menerima yang baru dalam respons otentikasi.

  • Anda dapat meneruskan ClientMetadata ke pemicu Lambda pembuatan token pra dalam permintaan AndaGetTokensFromRefreshToken. Data ini, yang diteruskan ke peristiwa input untuk pemicu Anda, memberikan konteks tambahan yang dapat Anda gunakan dalam logika khusus fungsi Lambda Anda.

Sebagai praktik keamanan terbaik, aktifkan rotasi token refresh pada klien aplikasi Anda.

Enable refresh token rotation (console)

Prosedur berikut mengaktifkan atau menonaktifkan rotasi token refresh untuk klien aplikasi Anda. Prosedur ini membutuhkan klien aplikasi yang sudah ada. Untuk mempelajari lebih lanjut tentang membuat klien aplikasi, lihatPengaturan khusus aplikasi dengan klien aplikasi.

Untuk mengaktifkan rotasi token refresh
  1. Masuk ke Konsol Amazon Cognito. Jika diminta, masukkan AWS kredensional Anda.

  2. Pilih Kolam Pengguna.

  3. Pilih kumpulan pengguna yang ada dari daftar.

  4. Arahkan ke menu Klien aplikasi dan pilih klien aplikasi yang ada.

  5. Pilih Edit dari bagian Informasi klien aplikasi pada halaman.

  6. Di bawah Konfigurasi keamanan lanjutan, cari opsi Aktifkan rotasi token penyegaran.

  7. Untuk mengaktifkan rotasi, pilih kotak centang. Untuk menonaktifkan rotasi, batalkan pilihan kotak centang.

  8. Di bawah masa tenggang rotasi token Refresh, masukkan beberapa detik, hingga 60, yang ingin Anda atur sebagai penundaan sebelum token penyegaran yang diputar dicabut.

Enable refresh token rotation (API)

Konfigurasikan rotasi token refresh dalam permintaan CreateUserPoolClientatau UpdateUserPoolClientAPI. Badan permintaan sebagian berikut mengaktifkan rotasi token refresh dan menetapkan masa tenggang menjadi sepuluh detik.

"RefreshTokenRotation" : { "Feature" : "ENABLED, "RetryGracePeriodSeconds" : 10 }

Penyegaran token API dan SDK

Ada dua cara untuk menggunakan token penyegaran untuk mendapatkan ID baru dan token akses dengan API kumpulan pengguna, tergantung pada apakah rotasi token refresh aktif. Di klien aplikasi dengan rotasi token refresh aktif, gunakan operasi GetTokensFromRefreshTokenAPI. Di klien aplikasi tanpa rotasi token refresh, gunakan REFRESH_TOKEN_AUTH alur operasi AdminInitiateAuthatau InitiateAuthAPI.

catatan

Pengguna dapat melakukan autentikasi dengan kumpulan pengguna di login terkelola atau dalam aplikasi khusus yang Anda buat AWS SDKs dan operasi Amazon Cognito API. REFRESH_TOKEN_AUTHAlur dan keduanya GetTokensFromRefreshToken dapat menyelesaikan penyegaran token untuk pengguna login terkelola. Penyegaran token dalam aplikasi khusus tidak memengaruhi sesi login terkelola. Sesi ini diatur dalam cookie browser dan berlaku selama satu jam. GetTokensFromRefreshTokenRespons mengeluarkan ID baru, akses, dan token penyegaran opsional, tetapi tidak memperbarui cookie sesi login terkelola.

REFRESH_TOKEN_AUTHtidak tersedia di klien aplikasi dengan rotasi token refresh diaktifkan.

GetTokensFromRefreshToken

GetTokensFromRefreshTokenmengembalikan ID baru, mengakses, dan menyegarkan token dari permintaan yang Anda otorisasi dengan token penyegaran. Berikut ini adalah contoh badan permintaan untukGetTokensFromRefreshToken. Anda dapat mengirimkan metadata klien ke pemicu Lambda dalam permintaan untuk operasi ini.

{ "RefreshToken": "eyJjd123abcEXAMPLE", "ClientId": "1example23456789", "ClientSecret": "myappclientsecret123abc", "ClientMetadata": { "MyMetadataKey" : "MyMetadataValue" }, }
AdminInitiateAuth/InitiateAuth

Untuk menggunakan token penyegaran saat rotasi token refresh tidak aktif, gunakan operasi AdminInitiateAuthatau InitiateAuthAPI. Lewatkan REFRESH_TOKEN_AUTH untuk parameter AuthFlow. Di AuthParameters propertiAuthFlow, berikan token penyegaran pengguna Anda sebagai nilai"REFRESH_TOKEN". Amazon Cognito mengembalikan ID baru dan token akses setelah permintaan API Anda melewati semua tantangan.

Berikut ini adalah contoh badan permintaan untuk penyegaran token dengan InitiateAuth atau AdminInitiateAuth API.

{ "AuthFlow": "REFRESH_TOKEN_AUTH", "ClientId": "1example23456789", "UserPoolId": "us-west-2_EXAMPLE", "AuthParameters": { "REFRESH_TOKEN": "eyJjd123abcEXAMPLE", "SECRET_HASH": "kT5acwCVrbD6JexhW3EQwnRSe6fLuPTRkEQ50athqv8=" } }

OAuth penyegaran token

Anda juga dapat mengirimkan token penyegaran ke Titik akhir token dalam kumpulan pengguna tempat Anda telah mengonfigurasi domain. Di badan permintaan, sertakan grant_type nilai refresh_token dan refresh_token nilai token penyegaran pengguna Anda.

Permintaan ke titik akhir token tersedia di klien aplikasi dengan rotasi token refresh aktif dan yang tidak aktif. Saat rotasi token refresh aktif, titik akhir token mengembalikan token penyegaran baru.

Berikut ini adalah contoh permintaan dengan token penyegaran.

POST /oauth2/token HTTP/1.1 Host: auth.example.com Content-Type: application/x-www-form-urlencoded Authorization: Basic ZGpjOTh1M2ppZWRtaTI4M2V1OTI4OmFiY2RlZjAxMjM0NTY3ODkw Content-Length: ** client_id=1example23456789&grant_type=refresh_token&refresh_token=eyJjd123abcEXAMPLE

Mencabut token penyegaran

Anda dapat mencabuttokenrefresh milik pengguna. Untuk informasi selengkapnya tentang pencabutan token, lihat. Mengakhiri sesi pengguna dengan pencabutan token

catatan

Mencabut token penyegaran akan mencabut semua ID dan token akses yang dikeluarkan Amazon Cognito dari permintaan penyegaran dengan token itu.

Untuk mengeluarkan pengguna dari semua sesi masuk saat ini, cabut semua token mereka dengan atau permintaan API. GlobalSignOutAdminUserGlobalSignOut Setelah pengguna keluar, efek berikut terjadi.

  • Token penyegaran pengguna tidak bisa mendapatkan token baru untuk pengguna.

  • Token akses pengguna tidak dapat membuat permintaan API yang diotorisasi token.

  • Pengguna harus mengautentikasi ulang untuk mendapatkan token baru. Karena cookie sesi login terkelola tidak kedaluwarsa secara otomatis, pengguna Anda dapat mengautentikasi ulang dengan cookie sesi, tanpa permintaan tambahan untuk kredensil. Setelah Anda mengeluarkan pengguna login terkelola, arahkan mereka keTitik akhir logout, tempat Amazon Cognito menghapus cookie sesi mereka.

Dengan token penyegaran, Anda dapat mempertahankan sesi pengguna di aplikasi Anda untuk waktu yang lama. Seiring waktu, pengguna Anda mungkin ingin membatalkan otorisasi beberapa aplikasi di mana mereka tetap masuk dengan token penyegaran mereka. Untuk mengeluarkan pengguna Anda dari satu sesi, cabut token penyegaran mereka. Saat pengguna Anda ingin keluar dari semua sesi yang diautentikasi, buat permintaan GlobalSignOutAPI. Aplikasi Anda dapat memberi pengguna pilihan seperti Keluar dari semua perangkat. GlobalSignOutmenerima token akses pengguna yang valid—tidak berubah, belum kedaluwarsa, tidak dicabut—. Karena API ini diberi otorisasi token, satu pengguna tidak dapat menggunakannya untuk memulai keluar untuk pengguna lain.

Namun, Anda dapat membuat permintaan AdminUserGlobalSignOutAPI yang Anda otorisasi dengan AWS kredensialnya untuk mengeluarkan pengguna mana pun dari semua perangkat mereka. Aplikasi administrator harus memanggil operasi API ini dengan kredensi AWS pengembang dan meneruskan ID kumpulan pengguna dan nama pengguna pengguna sebagai parameter. API AdminUserGlobalSignOut dapat mengeluarkan setiap pengguna di kolam pengguna.

Untuk informasi selengkapnya tentang permintaan yang dapat Anda otorisasi dengan AWS kredensi atau token akses pengguna, lihat. Daftar operasi API yang dikelompokkan berdasarkan model otorisasi