Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memahami token akses
Token akses kolam pengguna berisi klaim tentang pengguna yang diautentikasi, daftar kelompok pengguna, dan daftar cakupan. Tujuan token akses adalah untuk mengotorisasi operasi API. Kumpulan pengguna Anda menerima token akses untuk mengotorisasi operasi layanan mandiri pengguna. Misalnya, Anda dapat menggunakan token akses untuk memberikan akses pengguna Anda untuk menambah, mengubah, atau menghapus atribut pengguna.
Dengan cakupan OAuth 2.0
Dengan paket fitur Essentials atau Plus, Anda juga dapat menerapkan pemicu Lambda generasi pra token yang menambahkan cakupan ke token akses Anda saat runtime. Untuk informasi selengkapnya, lihat Pemicu Lambda generasi pra token.
Token akses pengguna dengan openid
cakupan adalah izin untuk meminta informasi lebih lanjut tentang atribut pengguna Anda dariTitik akhir UserInfo. Jumlah informasi dari userInfo
titik akhir berasal dari cakupan tambahan dalam token akses: misalnya, untuk semua data pengguna, profile
untuk alamat email email
mereka.
Token akses pengguna dengan aws.cognito.signin.user.admin
cakupan adalah izin untuk membaca dan menulis atribut pengguna, mencantumkan faktor otentikasi, mengonfigurasi preferensi otentikasi multi-faktor (MFA), dan mengelola perangkat yang diingat. Tingkat akses ke atribut yang diberikan token akses Anda ke cakupan ini cocok dengan izin baca/tulis atribut yang Anda tetapkan ke klien aplikasi Anda.
Token akses adalah JSON Web Token (JWTkid
) tidak akan cocok dengan nilai kid
klaim dalam token ID dari sesi pengguna yang sama. Dalam kode aplikasi Anda, verifikasi token ID dan akses token secara independen. Jangan percaya klaim dalam token akses sampai Anda memverifikasi tanda tangan. Untuk informasi selengkapnya, lihat Memverifikasi token web JSON. Anda dapat mengatur kedaluwarsa token akses ke nilai apa pun antara 5 menit dan 1 hari. Anda dapat menetapkan nilai ini per klien aplikasi.
penting
Untuk token akses dan ID, jangan tentukan minimum kurang dari satu jam jika Anda menggunakan login terkelola. Login terkelola menetapkan cookie browser yang berlaku selama satu jam. Jika Anda mengonfigurasi durasi token akses kurang dari satu jam, ini tidak berpengaruh pada validitas cookie login terkelola dan kemampuan pengguna untuk mengautentikasi ulang tanpa kredensyal tambahan selama satu jam setelah login awal.
Akses header token
Header berisi dua lembar informasi: ID kunci (kid
), dan algoritme (alg
).
{ "kid" : "1234example=" "alg" : "RS256", }
kid
-
ID kunci. Nilainya menunjukkan kunci yang digunakan untuk mengamankan JSON Web Signature (JWS) token. Anda dapat melihat kunci penandatanganan kumpulan pengguna IDs di
jwks_uri
titik akhir.Untuk informasi selengkapnya tentang
kid
parameter, lihat parameter header Key identifier (kid). alg
-
Algoritma kriptografi yang digunakan Amazon Cognito untuk mengamankan token akses. Kumpulan pengguna menggunakan algoritma RS256 kriptografi, yang merupakan tanda tangan RSA dengan SHA-256.
Untuk informasi selengkapnya tentang
alg
parameter, lihat Parameter header Algorithm (alg).
Akses muatan default token
Ini adalah muatan sampel dari token akses. Untuk informasi lebih lanjut, lihat klaim JWT
<header>
. { "sub":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "device_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups":[ "testgroup" ], "iss":"https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "version":2, "client_id":"xxxxxxxxxxxxexample", "origin_jti":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "event_id":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "token_use":"access", "scope":"phone openid profile resourceserver.1/appclient2 email", "auth_time":1676313851, "exp":1676317451, "iat":1676313851, "jti":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "username":"my-test-user" } .<token signature>
sub
-
Pengenal unik (UUID), atau subjek, untuk pengguna yang diautentikasi. Nama pengguna mungkin tidak unik di kumpulan pengguna Anda.
sub
Klaim adalah cara terbaik untuk mengidentifikasi pengguna tertentu. cognito:groups
-
Array nama grup kumpulan pengguna yang memiliki pengguna Anda sebagai anggota.
iss
-
Penyedia identitas yang mengeluarkan token. Klaim memiliki format berikut.
https://cognito-idp.
us-east-1
.amazonaws.com/us-east-1_EXAMPLE
client_id
-
Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito memberikan nilai yang sama dalam klaim token ID.
aud
origin_jti
-
Pengidentifikasi pencabutan token yang terkait dengan token penyegaran pengguna Anda. Amazon Cognito mereferensikan
origin_jti
klaim saat memeriksa apakah Anda mencabut token pengguna dengan Cabut titik akhir atau operasi API. RevokeToken Saat Anda mencabut token, Amazon Cognito tidak lagi memvalidasi token akses dan ID dengan nilai yang sama.origin_jti
token_use
-
Tujuan token yang dimaksudkan. Dalam token akses, nilainya adalah
access
. scope
-
Daftar cakupan OAuth 2.0 yang dikeluarkan untuk pengguna yang masuk. Cakupan menentukan akses yang disediakan token ke eksternal APIs, operasi layanan mandiri pengguna, dan data pengguna pada titik akhir
userInfo
. Token dari Titik akhir token dapat berisi cakupan apa pun yang didukung klien aplikasi Anda. Token dari login Amazon Cognito API hanya berisi cakupan.aws.cognito.signin.user.admin
auth_time
-
Waktu otentikasi, dalam format waktu Unix, bahwa pengguna Anda menyelesaikan otentikasi.
exp
-
Waktu kedaluwarsa, dalam format waktu Unix, token pengguna Anda kedaluwarsa.
iat
-
Waktu yang dikeluarkan, dalam format waktu Unix, Amazon Cognito mengeluarkan token pengguna Anda.
jti
-
Pengidentifikasi unik JWT.
username
-
Nama pengguna pengguna di kumpulan pengguna.
Sumber daya lainnya
Tanda tangan token akses
Tanda tangan token akses, ditandatangani dengan kunci yang diiklankan di .well-known/jwks.json
titik akhir, memvalidasi integritas header token dan payload. Saat Anda menggunakan token akses untuk mengotorisasi akses ke eksternal APIs, selalu konfigurasikan otorisasi API Anda untuk memverifikasi tanda tangan ini terhadap kunci yang menandatanganinya. Untuk informasi selengkapnya, lihat Memverifikasi token web JSON.