

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

# Gunakan Amazon Cognito untuk mengautentikasi
<a name="authenticating-using-cognito"></a>

Anda dapat menggunakan otentikasi Amazon Cognito sebagai alternatif untuk langsung menggunakan pengguna AWS Identity and Access Management (IAM) dengan permintaan SDK frontend. 

Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler. Anda dapat menggunakan kumpulan identitas Amazon Cognito yang tidak diautentikasi dengan Lokasi Amazon sebagai cara bagi aplikasi untuk mengambil kredenal sementara yang tercakup ke bawah. AWS 

Untuk informasi selengkapnya, lihat [Memulai Kumpulan Pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) di Panduan *Pengembang Amazon Cognito*.

Anda mungkin ingin menggunakan bentuk otentikasi ini karena alasan berikut:
+ **Pengguna yang tidak diautentikasi** — Jika Anda memiliki situs web dengan pengguna anonim, Anda dapat menggunakan kumpulan identitas Amazon Cognito. 

  Untuk informasi lebih lanjut, lihat bagian di[Gunakan Amazon Cognito untuk mengautentikasi](#authenticating-using-cognito). 
+ **Otentikasi Anda sendiri** — Jika Anda ingin menggunakan proses otentikasi Anda sendiri, atau menggabungkan beberapa metode otentikasi, Anda dapat menggunakan Identitas Federasi Amazon Cognito. 

  Untuk informasi selengkapnya, lihat [Memulai Identitas Federasi di Panduan](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) Pengembang *Amazon Cognito*.

## Gunakan Amazon Cognito dan Amazon Location Service
<a name="cognito-and-location"></a>

Anda dapat menggunakan kebijakan AWS Identity and Access Management (IAM) yang terkait dengan peran identitas yang tidak diautentikasi dengan tindakan berikut:

------
#### [ Maps ]

Daftar tindakan peta
+ `geo-maps:GetStaticMap`
+ `geo-maps:GetTile`

**catatan**  
Nama sumber daya untuk tindakan di atas adalah:  

```
arn:aws:geo-maps:region::provider/default
```

------
#### [ Places ]

Daftar tindakan tempat:
+ `geo-places:Geocode`
+ `geo-places:ReverseGeocode`
+ `geo-places:SearchNearby`
+ `geo-places:SearchText`
+ `geo-places:Autocomplete`
+ `geo-places:Suggest`
+ `geo-places:GetPlace`

**catatan**  
Nama sumber daya untuk tindakan di atas adalah:  

```
arn:aws:geo-places:region::provider/default
```

------
#### [ Routes ]

Daftar tindakan rute:
+ `geo-routes:CalculateRoutes`
+ `geo-routes:CalculateRouteMatrix`
+ `geo-routes:CalculateIsolines`
+ `geo-routes:OptimizeWaypoints`
+ `geo-routes:SnapToRoads`

**catatan**  
Nama sumber daya untuk tindakan di atas adalah:  

```
arn:aws:geo-routes:region::provider/default
```

------
#### [ Geofences and Trackers ]

Daftar tindakan Geofences dan Trackers
+ `geo:GetGeofence`
+ `geo:ListGeofences`
+ `geo:PutGeofence`
+ `geo:BatchDeleteGeofence`
+ `geo:BatchPutGeofence`
+ `geo:BatchEvaluateGeofences`
+ `geo:GetDevicePosition*`
+ `geo:ListDevicePositions`
+ `geo:BatchDeleteDevicePositionHistory`
+ `geo:BatchGetDevicePosition`
+ `geo:BatchUpdateDevicePosition`

**catatan**  
Nama sumber daya untuk tindakan di atas adalah:  

```
arn:aws:geo:region:accountID:tracker/ExampleTracker
```

------
#### [ Previous version ]

Daftar tindakan versi sebelumnya:
+ `geo:GetMap*`
+ `geo:SearchPlaceIndexForText`
+ `geo:SearchPlaceIndexForPosition`
+ `geo:GetPlace`
+ `geo:CalculateRoute`
+ `geo:CalculateRouteMatrix`

**catatan**  
Nama sumber daya untuk tindakan di atas adalah:  
**Peta**  

```
arn:aws:geo:region:accountID:map/ExampleMap
```
**Tempat**  

```
arn:aws:geo:region:accountID:place-index/ExamplePlaceIndex
```
**Rute**  

```
arn:aws:geo:region:accountID:route-calculator/ExampleCalculator
```

------

## Buat kumpulan identitas Amazon Cognito
<a name="cognito-create-user-pool"></a>

Anda dapat membuat kumpulan identitas Amazon Cognito untuk mengizinkan akses tamu yang tidak diautentikasi ke aplikasi Anda melalui konsol Amazon Cognito, the, atau AWS CLI Amazon Cognito. APIs

**penting**  
Kumpulan yang Anda buat harus sama Akun AWS dan AWS Wilayah sebagai sumber daya Amazon Location Service yang Anda gunakan.

------
#### [ Console ]

**Untuk membuat kumpulan identitas menggunakan konsol Amazon Cognito**

1. Masuk ke [Konsol Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Pilih **Kelola Kolam Identitas**.

1. Pilih **Buat kumpulan identitas baru**, lalu masukkan nama untuk kumpulan identitas Anda.

1. Dari bagian Identitas **tidak diautentikasi yang dapat dilipat, pilih **Aktifkan akses ke** identitas** yang tidak diautentikasi.

1. Pilih **Buat kolam**.

1. Pilih peran IAM mana yang ingin Anda gunakan dengan kumpulan identitas Anda.

1. Perluas **Lihat Detail**. 

1. Di bawah **Identitas tidak diautentikasi**, masukkan nama peran.

1. Perluas bagian **Lihat Dokumen Kebijakan**, lalu pilih **Edit** untuk menambahkan kebijakan Anda.

1. Tambahkan kebijakan Anda untuk memberikan akses ke sumber daya Anda.
**catatan**  
Lihat [Gunakan Amazon Cognito dan Amazon Location Service](#cognito-and-location) bagian di atas untuk daftar tindakan.

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
     Sid": "RoutesReadOnly",
     Effect": "Allow",
     Action": [
           // add comma separated value from the previous section
         ],
     Resource": "value from previous section"
       }
     ]
   }
   ```

1. Pilih **Izinkan** untuk membuat kumpulan identitas Anda.

------

## Gunakan kumpulan identitas Amazon Cognito di web
<a name="identity-pool-js"></a>

Contoh berikut menukar kumpulan identitas yang tidak diautentikasi yang Anda buat untuk kredensi yang kemudian digunakan untuk memanggil. `CalculateIsolines` Untuk menyederhanakan pekerjaan ini, contoh menggunakan [Cara menggunakan pembantu otentikasi](how-to-auth-helper.md) prosedur Lokasi Amazon. Ini menggantikan mendapatkan dan menyegarkan kredensialnya.

Contoh ini menggunakan AWS SDK untuk JavaScript v3.

```
import { GeoRoutesClient, CalculateIsolinesCommand , } from "@aws-sdk/client-geo-routes"; // ES Modules import
import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper";

const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef

const authHelper = await withIdentityPoolId(identityPoolId);

const client = new GeoRoutesClient({
    ...authHelper.getClientConfig(),
    region: "<region>", // The region containing the identity pool
});

const input = {
    DepartNow: true,
    TravelMode: "Car",
    Origin: [-123.12327, 49.27531],
    Thresholds: {
        Time: [5, 10, 30],
    },
};

const command = new CalculateIsolinesCommand(input);
const response = await client.send(command);

console.log(JSON.stringify(response, null, 2))
```