Menggunakan token akses - Amazon Cognito

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

Menggunakan token akses

Token akses kolam pengguna berisi klaim tentang pengguna yang diautentikasi, daftar kelompok pengguna, dan daftar cakupan. Tujuan dari token akses adalah untuk mengotorisasi API operasi. 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 dalam token akses, yang berasal dari cakupan khusus yang Anda tambahkan ke kumpulan pengguna, Anda dapat mengizinkan pengguna untuk mengambil informasi dari file. API Misalnya, Amazon API Gateway mendukung otorisasi dengan token akses Amazon Cognito. Anda dapat mengisi REST API otorisasi dengan informasi dari kumpulan pengguna Anda, atau menggunakan Amazon Cognito sebagai JSON otorisasi Token Web JWT () untuk file. HTTP API Untuk menghasilkan token akses dengan cakupan khusus, Anda harus memintanya melalui titik akhir publik kumpulan pengguna Anda.

Token akses pengguna Anda adalah izin untuk meminta informasi lebih lanjut tentang atribut pengguna Anda dariTitik akhir UserInfo. Token akses pengguna Anda juga merupakan izin untuk membaca dan menulis atribut pengguna. Tingkat akses ke atribut yang diberikan token akses Anda bergantung pada izin yang Anda tetapkan ke klien aplikasi, dan cakupan yang Anda berikan dalam token.

Token akses adalah Token JSON Web (JWT). Header untuk token akses memiliki struktur yang sama seperti token ID. Amazon Cognito menandatangani token akses dengan kunci berbeda dari kunci yang menandatangani token ID. Nilai klaim ID kunci akses (kid) 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 JSON Web. 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 minimal kurang dari satu jam jika Anda menggunakan UI yang dihosting. Amazon Cognito HosteDui menggunakan cookie yang berlaku selama satu jam. Jika Anda memasukkan minimum kurang dari satu jam, Anda tidak akan mendapatkan waktu kedaluwarsa yang lebih rendah.

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 Tanda Tangan JSON Web (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 RSA tanda tangan 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 JWTklaim. Anda dapat menambahkan klaim desain Anda sendiri dengan aPemicu Lambda generasi pra token.

<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. subKlaim 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.<Region>.amazonaws.com/<your user pool ID>

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 ketika memeriksa apakah Anda mencabut token pengguna Anda dengan Cabut titik akhir atau operasi. RevokeTokenAPI Saat Anda mencabut token, Amazon Cognito membatalkan semua token akses dan ID dengan nilai yang sama. origin_jti

token_use

Tujuan token yang dimaksudkan. Dalam token akses, nilainya adalahaccess.

scope

Daftar cakupan OAuth 2.0 yang menentukan akses apa yang disediakan token. Token dari Titik akhir token dapat berisi cakupan apa pun yang didukung klien aplikasi Anda. Token dari API login Amazon Cognito hanya berisi ruang lingkup. 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 dari. JWT

username

Nama pengguna pengguna Anda di kolam pengguna Anda.

Tanda tangan token akses

Tanda tangan token akses dihitung berdasarkan header dan payload JWT token. Saat digunakan di luar aplikasi di web AndaAPIs, Anda harus selalu memverifikasi tanda tangan ini sebelum menerima token. Untuk informasi selengkapnya, lihat Memverifikasi Token JSON Web.