Menggunakan token ID - Amazon Cognito

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

Menggunakan token ID

Token ID adalah Token JSON Web (JWT) yang berisi klaim tentang identitas pengguna yang diautentikasi, sepertiname,email, danphone_number. Anda dapat menggunakan informasi identitas ini dalam aplikasi Anda. Token ID juga dapat digunakan untuk mengautentikasi pengguna ke server sumber daya atau aplikasi server Anda. Anda juga dapat menggunakan token ID di luar aplikasi dengan API operasi web Anda. Dalam kasus tersebut, Anda harus memverifikasi tanda tangan token ID sebelum Anda dapat mempercayai klaim apa pun di dalam token ID. Lihat Memverifikasi Token JSON Web.

Anda dapat mengatur token ID kedaluwarsa ke nilai apa pun antara 5 menit dan 1 hari. Anda dapat menetapkan nilai ini per klien aplikasi.

penting

Saat pengguna Anda masuk dengan UI yang dihosting atau penyedia identitas gabungan (iDP), Amazon Cognito menetapkan cookie sesi yang berlaku selama 1 jam. Jika Anda menggunakan UI atau federasi yang dihosting, dan menentukan durasi minimum kurang dari 1 jam untuk akses dan token ID Anda, pengguna Anda akan tetap memiliki sesi yang valid hingga cookie kedaluwarsa. Jika pengguna memiliki token yang kedaluwarsa selama sesi satu jam, pengguna dapat menyegarkan token mereka tanpa perlu mengautentikasi ulang.

Header Token ID

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).

Muatan default token ID

Ini adalah contoh payload dari token ID. Ini berisi klaim tentang pengguna yang diautentikasi. Untuk informasi selengkapnya tentang klaim standar OpenID Connect (OIDC), lihat daftar klaim OIDCstandar. Anda dapat menambahkan klaim desain Anda sendiri dengan aPemicu Lambda generasi pra token.

<header>.{ "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups": [ "test-group-a", "test-group-b", "test-group-c" ], "email_verified": true, "cognito:preferred_role": "arn:aws:iam::111122223333:role/my-test-role", "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "cognito:username": "my-test-user", "middle_name": "Jane", "nonce": "abcdefg", "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:roles": [ "arn:aws:iam::111122223333:role/my-test-role" ], "aud": "xxxxxxxxxxxxexample", "identities": [ { "userId": "amzn1.account.EXAMPLE", "providerName": "LoginWithAmazon", "providerType": "LoginWithAmazon", "issuer": null, "primary": "true", "dateCreated": "1642699117273" } ], "event_id": "64f513be-32db-42b0-b78e-b02127b4f463", "token_use": "id", "auth_time": 1676312777, "exp": 1676316377, "iat": 1676312777, "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "email": "my-test-user@example.com" } .<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. Grup dapat berupa pengenal yang ditampilkan ke aplikasi, atau mereka dapat membuat permintaan untuk IAM peran pilihan dari kumpulan identitas.

cognito:preferred_role

ARNIAMPeran yang Anda kaitkan dengan grup kumpulan pengguna prioritas tertinggi pengguna Anda. Untuk informasi selengkapnya tentang cara kumpulan pengguna memilih klaim peran ini, lihatMenetapkan nilai prioritas ke grup.

iss

Penyedia identitas yang mengeluarkan token. Klaim memiliki format berikut.

https://cognito-idp.<Region>.amazonaws.com/<your user pool ID>

cognito:username

Nama pengguna pengguna Anda di kolam pengguna Anda.

nonce

nonceKlaim berasal dari parameter dengan nama yang sama yang dapat Anda tambahkan ke permintaan ke authorize titik akhir OAuth 2.0 Anda. Saat Anda menambahkan parameter, nonce klaim disertakan dalam token ID yang dikeluarkan Amazon Cognito, dan Anda dapat menggunakannya untuk mencegah serangan replay. Jika Anda tidak memberikan nonce nilai dalam permintaan Anda, Amazon Cognito secara otomatis membuat dan memvalidasi nonce saat Anda mengautentikasi melalui penyedia identitas pihak ketiga, lalu menambahkannya sebagai nonce klaim ke token ID. Implementasi nonce klaim di Amazon Cognito didasarkan pada OIDC standar.

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

cognito:roles

Array nama IAM peran yang terkait dengan grup pengguna Anda. Setiap grup kumpulan pengguna dapat memiliki satu IAM peran yang terkait dengannya. Array ini mewakili semua IAM peran untuk grup pengguna Anda, terlepas dari prioritas. Untuk informasi selengkapnya, lihat Menambahkan grup ke kumpulan pengguna.

aud

Klien aplikasi kumpulan pengguna yang mengautentikasi pengguna Anda. Amazon Cognito memberikan nilai yang sama dalam klaim token akses. client_id

identities

Isi identities atribut pengguna. Atribut berisi informasi tentang setiap profil penyedia identitas pihak ketiga yang telah Anda tautkan ke pengguna, baik dengan login federasi atau dengan menautkan pengguna federasi ke profil lokal. Informasi ini berisi nama penyedia mereka, ID unik penyedia mereka, dan metadata lainnya.

token_use

Tujuan token yang dimaksudkan. Dalam token ID, nilainya adalahid.

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

Token ID dapat berisi klaim OIDC standar yang didefinisikan dalam klaim OIDC standar. Token ID juga dapat berisi atribut khusus yang Anda tentukan di kumpulan pengguna Anda. Amazon Cognito menulis nilai atribut khusus ke token ID sebagai string terlepas dari jenis atribut.

catatan

Atribut kustom kumpulan pengguna selalu diawali dengancustom:.

Tanda Tangan Token ID

Tanda tangan token ID dihitung berdasarkan header dan payload JWT token. Sebelum Anda menerima klaim dalam token ID apa pun yang diterima aplikasi Anda, verifikasi tanda tangan token tersebut. Untuk informasi selengkapnya, lihat Memverifikasi Token JSON Web. Memverifikasi Token JSON Web.