

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Usar o Amazon Cognito para autenticação
<a name="authenticating-using-cognito"></a>

Você pode usar a autenticação do Amazon Cognito como alternativa ao uso direto de usuários AWS Identity and Access Management (IAM) com solicitações de SDK de front-end. 

O Amazon Cognito fornece autenticação, autorização e gerenciamento de usuários para suas aplicações Web e móveis. Você pode usar grupos de identidade não autenticados do Amazon Cognito com o Amazon Location como uma forma de os aplicativos recuperarem credenciais temporárias com escopo reduzido. AWS 

Para obter mais informações, consulte [Introdução aos Grupos de Usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) no *Guia do Desenvolvedor do Amazon Cognito*.

Talvez você queira usar essa forma de autenticação pelos seguintes motivos:
+ **Usuários não autenticados**: se você tiver um site com usuários anônimos, poderá usar os bancos de identidades do Amazon Cognito. 

  Para obter mais informações, consulte a seção em [Usar o Amazon Cognito para autenticação](#authenticating-using-cognito). 
+ **Sua própria autenticação**: se você quiser usar seu próprio processo de autenticação ou combinar vários métodos de autenticação, você pode usar as Identidades Federadas do Amazon Cognito. 

  Para obter mais informações, consulte [Conceitos básicos das identidades federadas](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) no *Guia do desenvolvedor do Amazon Cognito*.

## Usar o Amazon Cognito e o Amazon Location Service
<a name="cognito-and-location"></a>

Você pode usar políticas AWS Identity and Access Management (IAM) associadas a funções de identidade não autenticadas com as seguintes ações:

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

Lista de ações dos mapas
+ `geo-maps:GetStaticMap`
+ `geo-maps:GetTile`

**nota**  
Os nomes dos recursos para as ações acima são:  

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

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

Lista de ações de locais:
+ `geo-places:Geocode`
+ `geo-places:ReverseGeocode`
+ `geo-places:SearchNearby`
+ `geo-places:SearchText`
+ `geo-places:Autocomplete`
+ `geo-places:Suggest`
+ `geo-places:GetPlace`

**nota**  
Os nomes dos recursos para as ações acima são:  

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

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

Lista de ações de rotas:
+ `geo-routes:CalculateRoutes`
+ `geo-routes:CalculateRouteMatrix`
+ `geo-routes:CalculateIsolines`
+ `geo-routes:OptimizeWaypoints`
+ `geo-routes:SnapToRoads`

**nota**  
Os nomes dos recursos para as ações acima são:  

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

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

Lista de ações de geocercas e rastreadores
+ `geo:GetGeofence`
+ `geo:ListGeofences`
+ `geo:PutGeofence`
+ `geo:BatchDeleteGeofence`
+ `geo:BatchPutGeofence`
+ `geo:BatchEvaluateGeofences`
+ `geo:GetDevicePosition*`
+ `geo:ListDevicePositions`
+ `geo:BatchDeleteDevicePositionHistory`
+ `geo:BatchGetDevicePosition`
+ `geo:BatchUpdateDevicePosition`

**nota**  
Os nomes dos recursos para as ações acima são:  

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

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

Lista de ações da versão anterior:
+ `geo:GetMap*`
+ `geo:SearchPlaceIndexForText`
+ `geo:SearchPlaceIndexForPosition`
+ `geo:GetPlace`
+ `geo:CalculateRoute`
+ `geo:CalculateRouteMatrix`

**nota**  
Os nomes dos recursos para as ações acima são:  
**Mapas**  

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

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

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

------

## Como criar um banco de identidades do Amazon Cognito
<a name="cognito-create-user-pool"></a>

Você pode criar grupos de identidade do Amazon Cognito para permitir o acesso de convidados não autenticados ao seu aplicativo por meio do console do Amazon Cognito, do ou AWS CLI do Amazon Cognito. APIs

**Importante**  
O pool que você cria deve estar na mesma Conta da AWS AWS região dos recursos do Amazon Location Service que você está usando.

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

**Para criar um banco de identidades usando o console do Amazon Cognito**

1. Acesse o [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Selecione **Gerenciar grupos de identidades**.

1. Selecione **Criar novo banco de identidades** e, em seguida, insira um nome para seu banco de identidades.

1. Na seção expansível **Identidades não autenticadas**, selecione **Habilitar acesso a identidades não autenticadas**.

1. Selecione **Criar grupo**.

1. Escolha quais perfis do IAM você deseja utilizar com seu banco de identidades.

1. Expanda **Exibir detalhes**. 

1. Em **Identidades não autenticadas**, insira um nome de perfil.

1. Expanda a seção **Exibir documento da política** e selecione **Editar** para adicionar sua política.

1. Adicione sua política para conceder acesso aos seus recursos.
**nota**  
Consulte a seção [Usar o Amazon Cognito e o Amazon Location Service](#cognito-and-location) acima para obter uma lista de ações.

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

1. Selecione **Permitir** para criar seus bancos de identidades.

------

## Usar banco de identidades do Amazon Cognito na web
<a name="identity-pool-js"></a>

O exemplo a seguir troca o banco de identidades não autenticado que você criou por credenciais que são então usadas para chamar `CalculateIsolines`. Para simplificar esse trabalho, o exemplo usa os procedimentos de [Como usar auxiliares de autenticação](how-to-auth-helper.md) do Amazon Location Service. Isso serve tanto para obter as credenciais quanto para atualizá-las.

Este exemplo usa o AWS SDK para 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))
```