Bekerja dengan sumber identitas Amazon Cognito - Izin Terverifikasi Amazon

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

Bekerja dengan sumber identitas Amazon Cognito

Izin Terverifikasi bekerja sama dengan kumpulan pengguna Amazon Cognito. Amazon Cognito JWTs memiliki struktur yang dapat diprediksi. Izin Terverifikasi mengenali struktur ini dan menarik manfaat maksimal dari informasi yang dikandungnya. Misalnya, Anda dapat menerapkan model otorisasi kontrol akses berbasis peran (RBAC) dengan token ID atau token akses.

Sumber identitas kumpulan pengguna Amazon Cognito baru memerlukan informasi berikut:

  • Itu Wilayah AWS.

  • ID kolam pengguna.

  • Jenis entitas utama yang ingin Anda kaitkan dengan sumber identitas Anda, misalnyaMyCorp::User.

  • Jenis entitas grup utama yang ingin Anda kaitkan dengan sumber identitas Anda, misalnyaMyCorp::UserGroup.

  • Klien IDs dari kumpulan pengguna Anda yang ingin Anda otorisasi untuk mengajukan permintaan ke toko kebijakan Anda.

Karena Izin Terverifikasi hanya berfungsi dengan kumpulan pengguna Amazon Cognito dalam Akun AWS hal yang sama, Anda tidak dapat menentukan sumber identitas di akun lain. Izin Terverifikasi menyetel awalan entitas —pengenal sumber identitas yang harus Anda referensikan dalam kebijakan yang bertindak pada prinsip kumpulan pengguna—ke ID kumpulan pengguna Anda, misalnya. us-west-2_EXAMPLE Dalam hal ini, Anda akan mereferensikan pengguna di kumpulan pengguna tersebut dengan ID a1b2c3d4-5678-90ab-cdef-EXAMPLE22222 sebagai us-west-2_EXAMPLE|a1b2c3d4-5678-90ab-cdef-EXAMPLE22222

Klaim token kumpulan pengguna dapat berisi atribut, cakupan, grup, klien IDs, dan data khusus. Amazon Cognito JWTs memiliki kemampuan untuk menyertakan berbagai informasi yang dapat berkontribusi pada keputusan otorisasi di Izin Terverifikasi. Ini termasuk:

  1. Nama pengguna dan klaim grup dengan cognito: awalan

  2. Atribut pengguna kustom dengan custom: prefix

  3. Klaim khusus ditambahkan saat runtime

  4. Klaim standar OIDC seperti dan sub email

Kami membahas klaim ini secara rinci, dan cara mengelolanya dalam kebijakan Izin Terverifikasi, diMemetakan token Amazon Cognito ke skema.

penting

Meskipun Anda dapat mencabut token Amazon Cognito sebelum kedaluwarsa JWTs , dianggap sebagai sumber daya tanpa kewarganegaraan yang mandiri dengan tanda tangan dan validitas. Layanan yang sesuai dengan JSON Web Token RFC 7519 diharapkan dapat memvalidasi token dari jarak jauh dan tidak diharuskan untuk memvalidasinya dengan penerbit. Ini berarti bahwa Izin Terverifikasi dimungkinkan untuk memberikan akses berdasarkan token yang dicabut atau dikeluarkan untuk pengguna yang kemudian dihapus. Untuk mengurangi risiko ini, kami sarankan Anda membuat token dengan durasi validitas sesingkat mungkin dan mencabut token penyegaran saat Anda ingin menghapus otorisasi untuk melanjutkan sesi pengguna. Untuk informasi selengkapnya, lihat Mengakhiri sesi pengguna dengan pencabutan token

Contoh berikut ini menunjukkan cara membuat kebijakan yang mereferensikan beberapa klaim kumpulan pengguna Amazon Cognito yang terkait dengan prinsipal.

permit( principal, action, resource == ExampleCo::Photo::"VacationPhoto94.jpg" ) when { principal["cognito:username"]) == "alice" && principal["custom:department"]) == "Finance" };

Contoh berikut ini menunjukkan bagaimana Anda dapat membuat kebijakan yang mereferensikan prinsipal yang merupakan pengguna di kumpulan pengguna Cognito. Perhatikan bahwa ID utama berbentuk"<userpool-id>|<sub>".

permit( principal == ExampleCo::User::"us-east-1_example|a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", action, resource == ExampleCo::Photo::"VacationPhoto94.jpg" );

Kebijakan cedar untuk sumber identitas kumpulan pengguna di Izin Terverifikasi menggunakan sintaks khusus untuk nama klaim yang berisi karakter selain alfanumerik dan garis bawah (). _ Ini termasuk klaim awalan kumpulan pengguna yang berisi : karakter, suka cognito:username dancustom:department. Untuk menulis kondisi kebijakan yang mereferensikan cognito:username atau custom:department klaim, tulislah sebagai principal["cognito:username"] danprincipal["custom:department"], masing-masing.

catatan

Jika token berisi klaim dengan custom: awalan cognito: atau dan nama klaim dengan nilai literal cognito ataucustom, permintaan otorisasi dengan IsAuthorizedWithTokenakan gagal dengan. ValidationException

Untuk informasi selengkapnya tentang pemetaan klaim, lihatMemetakan token Amazon Cognito ke skema. Untuk informasi selengkapnya tentang otorisasi untuk pengguna Amazon Cognito, lihat Otorisasi dengan Izin Terverifikasi Amazon di Panduan Pengembang Amazon Cognito.