

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

# Bekerja dengan sumber Amazon Cognito identitas
<a name="identity-sources-cognito"></a>

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 AWS Region.
+ ID kolam pengguna.
+ Jenis entitas utama yang ingin Anda kaitkan dengan sumber identitas Anda, misalnya`MyCorp::User`.
+ Jenis entitas grup utama yang ingin Anda kaitkan dengan sumber identitas Anda, misalnya`MyCorp::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](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html)memiliki kemampuan untuk memasukkan berbagai informasi yang dapat berkontribusi pada keputusan otorisasi dalam Izin Terverifikasi. Ini termasuk:

1. Nama pengguna dan klaim grup dengan `cognito:` awalan

1. [Atribut pengguna kustom](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes) dengan `custom: prefix`

1. Klaim khusus ditambahkan saat runtime

1. Klaim standar OIDC seperti dan `sub` `email`

Kami membahas klaim ini secara rinci, dan cara mengelolanya dalam kebijakan Izin Terverifikasi, di[Memetakan Amazon Cognito token ke skema](cognito-map-token-to-schema.md).

**penting**  
Meskipun Anda dapat mencabut Amazon Cognito token 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](https://datatracker.ietf.org/doc/html/rfc7519) 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](https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html)

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` dan`custom:department`. Untuk menulis kondisi kebijakan yang mereferensikan `cognito:username` atau `custom:department` klaim, tulislah sebagai `principal["cognito:username"]` dan`principal["custom:department"]`, masing-masing.

**catatan**  
Jika token berisi klaim dengan `custom:` awalan `cognito:` atau dan nama klaim dengan nilai literal `cognito` atau`custom`, permintaan otorisasi dengan [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)akan gagal dengan. `ValidationException`

Untuk informasi selengkapnya tentang pemetaan klaim, lihat[Memetakan Amazon Cognito token ke skema](cognito-map-token-to-schema.md). Untuk informasi selengkapnya tentang otorisasi bagi Amazon Cognito pengguna, lihat [Otorisasi dengan Izin Terverifikasi Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html) di Panduan Pengembang *Amazon* Cognito.

**Topics**
+ [Membuat sumber Amazon Cognito identitas Izin Terverifikasi Amazon](cognito-create.md)
+ [Mengedit sumber Amazon Cognito identitas Izin Terverifikasi Amazon](cognito-edit.md)
+ [Memetakan Amazon Cognito token ke skema](cognito-map-token-to-schema.md)
+ [Validasi klien dan audiens untuk Amazon Cognito](cognito-validation.md)