

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

# Mengakses Layanan AWS menggunakan kumpulan identitas setelah masuk
<a name="amazon-cognito-integrating-user-pools-with-identity-pools"></a>

Setelah pengguna Anda masuk dengan kumpulan pengguna, mereka dapat mengakses Layanan AWS dengan kredensil API sementara yang dikeluarkan dari kumpulan identitas.

Aplikasi web atau seluler Anda menerima token dari kumpulan pengguna. Saat Anda mengonfigurasi kumpulan pengguna sebagai penyedia identitas ke kumpulan identitas Anda, kumpulan identitas akan menukar token untuk AWS kredensi sementara. Kredensi ini dapat dicakup ke peran IAM dan kebijakannya yang memberi pengguna akses ke serangkaian sumber daya terbatas. AWS Untuk informasi selengkapnya, lihat [Aliran otentikasi kumpulan identitas](authentication-flow.md).

Diagram berikut menunjukkan cara aplikasi masuk dengan kumpulan pengguna, mengambil kredensial kumpulan identitas, dan meminta aset dari sebuah. Layanan AWS

![Diagram alir aplikasi yang mengautentikasi dengan kumpulan pengguna Amazon Cognito dan mengotorisasi akses AWS ke sumber daya dengan kumpulan identitas.](http://docs.aws.amazon.com/id_id/cognito/latest/developerguide/images/access-services-identity-pool.png)


Anda dapat menggunakan kredensial kumpulan identitas untuk:
+ Buat permintaan otorisasi berbutir halus ke Izin Terverifikasi Amazon dengan kredensil pengguna Anda sendiri.
+ Connect ke Amazon API Gateway REST API atau AWS AppSync GraphQL API yang mengotorisasi koneksi dengan IAM.
+ Connect ke backend database seperti Amazon DynamoDB atau Amazon RDS yang mengotorisasi koneksi dengan IAM.
+ Ambil aset aplikasi dari bucket Amazon S3.
+ Memulai sesi dengan desktop WorkSpaces virtual Amazon.

Kumpulan identitas tidak beroperasi secara eksklusif dalam sesi yang diautentikasi dengan kumpulan pengguna. Mereka juga menerima otentikasi langsung dari penyedia identitas pihak ketiga dan dapat menghasilkan kredensil untuk pengguna tamu yang tidak diautentikasi.

Untuk informasi selengkapnya tentang penggunaan kumpulan identitas bersama dengan grup kumpulan pengguna untuk mengontrol akses ke AWS sumber daya Anda, lihat [Menambahkan grup ke kumpulan pengguna](cognito-user-pools-user-groups.md) dan[Menggunakan kontrol akses berbasis peran](role-based-access-control.md). Juga, untuk informasi lebih lanjut tentang kumpulan identitas dan AWS Identity and Access Management, lihat[Aliran otentikasi kumpulan identitas](authentication-flow.md).

## Menyiapkan kolam pengguna dengan Konsol Manajemen AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-setting-up"></a>

Buat kolam pengguna Amazon Cognito dan buat catatan **ID Kolam Pengguna** dan **ID Klien Aplikasi** untuk setiap aplikasi klien Anda. Untuk informasi selengkapnya tentang membuat kolam pengguna ini, lihat [Memulai dengan kumpulan pengguna](getting-started-user-pools.md).

## Menyiapkan kolam identitas dengan Konsol Manajemen AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-configuring"></a>

Prosedur berikut menjelaskan cara menggunakan kumpulan identitas Konsol Manajemen AWS untuk mengintegrasikan kumpulan identitas dengan satu atau beberapa kumpulan pengguna dan aplikasi klien.

**Untuk menambahkan penyedia identitas kumpulan pengguna Amazon Cognito (iDP)**

1. Pilih **kumpulan Identitas** dari konsol [Amazon Cognito](https://console.aws.amazon.com/cognito/home). Pilih kumpulan identitas.

1. Pilih tab **Akses pengguna**.

1. Pilih **Tambahkan penyedia identitas**.

1. Pilih **kumpulan pengguna Amazon Cognito**.

1. Masukkan **ID kumpulan Pengguna dan ID** **klien Aplikasi**.

1. **Untuk menyetel peran yang diminta Amazon Cognito saat mengeluarkan kredensil kepada pengguna yang telah mengautentikasi dengan penyedia ini, konfigurasikan setelan Peran.**

   1. Anda dapat memberi pengguna dari IDP itu **peran Default** yang Anda atur saat mengonfigurasi peran **Terautentikasi**, atau Anda dapat **Memilih peran** dengan aturan. Dengan IdP kumpulan pengguna Amazon Cognito, Anda juga dapat **Memilih peran dengan klaim preferred\_role dalam token**. Untuk informasi lebih lanjut tentang `cognito:preferred_role` klaim, lihat[Menetapkan nilai prioritas ke grup](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

      1. Jika Anda memilih **Pilih peran dengan aturan**, masukkan **Klaim** sumber dari autentikasi pengguna Anda, **Operator** yang ingin Anda gunakan untuk membandingkan klaim dengan aturan, **Nilai** yang akan menyebabkan kecocokan dengan pilihan peran ini, dan **Peran** yang ingin Anda tetapkan saat **penetapan peran** cocok. Pilih **Tambahkan yang lain** untuk membuat aturan tambahan berdasarkan kondisi yang berbeda.

      1. Jika Anda memilih **peran Pilih dengan klaim preferred\_role dalam token**, Amazon Cognito akan mengeluarkan kredensi untuk peran tersebut dalam klaim pengguna Anda. `cognito:preferred_role` **Jika tidak ada klaim peran pilihan, Amazon Cognito mengeluarkan kredensil berdasarkan resolusi Peran Anda.**

   1. Pilih **Resolusi Peran**. **Jika klaim pengguna tidak sesuai dengan aturan, Anda dapat menolak kredensi atau mengeluarkan kredensi untuk peran yang Diautentikasi.**

1. **Untuk mengubah tag utama yang ditetapkan Amazon Cognito saat mengeluarkan kredensil kepada pengguna yang telah diautentikasi dengan penyedia ini, konfigurasikan Atribut untuk kontrol akses.**
   + Untuk tidak menerapkan tag utama, pilih **Tidak aktif**.
   + Untuk menerapkan tag utama berdasarkan `sub` dan `aud` klaim, pilih **Gunakan pemetaan default**.
   + Untuk membuat skema atribut kustom Anda sendiri ke tag utama, pilih **Gunakan pemetaan khusus**. Kemudian masukkan **kunci Tag** yang ingin Anda sumber dari setiap **Klaim** yang ingin Anda wakili dalam tag.

1. Pilih **Simpan perubahan**.

## Mengintegrasikan kumpulan pengguna dengan kolam identitas
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-using"></a>

Setelah pengguna aplikasi Anda diautentikasi, tambahkan token identitas pengguna tersebut ke peta masuk di penyedia kredensialnya. Nama penyedia akan tergantung pada ID kolam pengguna Amazon Cognito Anda. Ini akan memiliki struktur sebagai berikut:

```
cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}
```

Anda dapat memperoleh nilai untuk {{<region>}} dari **User Pool ID**. Misalnya, jika ID kumpulan pengguna adalah`us-east-1_EXAMPLE1`, maka {{<region>}} adalah`us-east-1`. Jika ID kumpulan pengguna adalah`us-west-2_EXAMPLE2`, maka {{<region>}} adalah`us-west-2`.

------
#### [ JavaScript ]

```
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
	cognitoUser.getSession(function(err, result) {
		if (result) {
			console.log('You are now logged in.');

			// Add the User's Id Token to the Cognito credentials login map.
			AWS.config.credentials = new AWS.CognitoIdentityCredentials({
				IdentityPoolId: '{{YOUR_IDENTITY_POOL_ID}}',
				Logins: {
					'cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}': result.getIdToken().getJwtToken()
				}
			});
		}
	});
}
```

------
#### [ Android ]

```
cognitoUser.getSessionInBackground(new AuthenticationHandler() {
	@Override
	public void onSuccess(CognitoUserSession session) {
		String idToken = session.getIdToken().getJWTToken();

		Map<String, String> logins = new HashMap<String, String>();
		logins.put("cognito-idp.{{<region>}}.amazonaws.com/{{<YOUR_USER_POOL_ID>}}", session.getIdToken().getJWTToken());
		credentialsProvider.setLogins(logins);
	}

});
```

------
#### [ iOS - objective-C ]

```
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"{{YOUR_CLIENT_ID}}"  clientSecret:@"{{YOUR_CLIENT_SECRET}}" poolId:@"{{YOUR_USER_POOL_ID}}"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"{{YOUR_IDENTITY_POOL_ID}}" identityProviderManager:pool];
```

------
#### [ iOS - swift ]

```
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "{{YOUR_CLIENT_ID}}", clientSecret: "{{YOUR_CLIENT_SECRET}}", poolId: "{{YOUR_USER_POOL_ID}}")
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool")
let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "{{YOUR_IDENTITY_POOL_ID}}", identityProviderManager:pool)
```

------