

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Usa Amazon Cognito per l'autenticazione
<a name="authenticating-using-cognito"></a>

Puoi utilizzare l'autenticazione Amazon Cognito come alternativa all'utilizzo diretto di utenti AWS Identity and Access Management (IAM) con richieste SDK frontend. 

Amazon Cognito fornisce autenticazione, autorizzazione e gestione degli utenti per app Web e mobili. Puoi utilizzare i pool di identità non autenticati di Amazon Cognito con Amazon Location per consentire alle applicazioni di recuperare credenziali temporanee e limitate. AWS 

Per ulteriori informazioni, consulta [Getting Started with User Pools](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) nella *Amazon Cognito Developer Guide*.

Potresti voler utilizzare questa forma di autenticazione per i seguenti motivi:
+ **Utenti non autenticati**: se disponi di un sito Web con utenti anonimi, puoi utilizzare i pool di identità di Amazon Cognito. 

  Per ulteriori informazioni, consulta la sezione su. [Usa Amazon Cognito per l'autenticazione](#authenticating-using-cognito) 
+ **Autenticazione personalizzata**: se desideri utilizzare il tuo processo di autenticazione o combinare più metodi di autenticazione, puoi utilizzare Amazon Cognito Federated Identities. 

  Per ulteriori informazioni, consulta [Getting Started with Federated Identities](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) nella *Amazon Cognito Developer Guide*.

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

Puoi utilizzare le policy AWS Identity and Access Management (IAM) associate a ruoli di identità non autenticati con le seguenti azioni:

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

Elenco delle azioni della mappa
+ `geo-maps:GetStaticMap`
+ `geo-maps:GetTile`

**Nota**  
I nomi delle risorse per le azioni precedenti sono:  

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

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

Elenco delle azioni relative al luogo:
+ `geo-places:Geocode`
+ `geo-places:ReverseGeocode`
+ `geo-places:SearchNearby`
+ `geo-places:SearchText`
+ `geo-places:Autocomplete`
+ `geo-places:Suggest`
+ `geo-places:GetPlace`

**Nota**  
I nomi delle risorse per le azioni precedenti sono:  

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

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

Elenco delle azioni relative ai percorsi:
+ `geo-routes:CalculateRoutes`
+ `geo-routes:CalculateRouteMatrix`
+ `geo-routes:CalculateIsolines`
+ `geo-routes:OptimizeWaypoints`
+ `geo-routes:SnapToRoads`

**Nota**  
I nomi delle risorse per le azioni precedenti sono:  

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

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

Elenco delle azioni di Geofences e Trackers
+ `geo:GetGeofence`
+ `geo:ListGeofences`
+ `geo:PutGeofence`
+ `geo:BatchDeleteGeofence`
+ `geo:BatchPutGeofence`
+ `geo:BatchEvaluateGeofences`
+ `geo:GetDevicePosition*`
+ `geo:ListDevicePositions`
+ `geo:BatchDeleteDevicePositionHistory`
+ `geo:BatchGetDevicePosition`
+ `geo:BatchUpdateDevicePosition`

**Nota**  
I nomi delle risorse per le azioni precedenti sono:  

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

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

Elenco delle azioni della versione precedente:
+ `geo:GetMap*`
+ `geo:SearchPlaceIndexForText`
+ `geo:SearchPlaceIndexForPosition`
+ `geo:GetPlace`
+ `geo:CalculateRoute`
+ `geo:CalculateRouteMatrix`

**Nota**  
I nomi delle risorse per le azioni precedenti sono:  
**Mappe**  

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

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

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

------

## Creazione di un pool di identità in Amazon Cognito
<a name="cognito-create-user-pool"></a>

Puoi creare pool di identità Amazon Cognito per consentire l'accesso degli ospiti non autenticati alla tua applicazione tramite la console Amazon Cognito, o AWS CLI Amazon Cognito. APIs

**Importante**  
Il pool che crei deve trovarsi nella stessa Account AWS AWS regione delle risorse di Amazon Location Service che stai utilizzando.

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

**Per creare un pool di identità utilizzando la console Amazon Cognito**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Scegli **Manage Identity Pools (Gestisci pool di identità)**.

1. Scegli **Crea nuovo pool di identità**, quindi inserisci un nome per il tuo pool di identità.

1. Dalla sezione pieghevole **Identità non autenticate**, scegli **Abilita l'accesso alle** identità non autenticate.

1. Seleziona **Create Pool** (Crea pool).

1. Scegli quali ruoli IAM desideri utilizzare con il tuo pool di identità.

1. Espandi **Visualizza dettagli**. 

1. In **Identità non autenticate**, inserisci il nome del ruolo.

1. Espandi la sezione **Visualizza documento di policy**, quindi scegli **Modifica** per aggiungere la tua policy.

1. Aggiungi la tua politica per concedere l'accesso alle tue risorse.
**Nota**  
Consulta la [Usa Amazon Cognito e Amazon Location Service](#cognito-and-location) sezione precedente per un elenco di azioni.

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

1. Scegli **Consenti** per creare i tuoi pool di identità.

------

## Usa il pool di identità di Amazon Cognito nel web
<a name="identity-pool-js"></a>

L'esempio seguente scambia il pool di identità non autenticato creato con credenziali che vengono poi utilizzate per la chiamata. `CalculateIsolines` Per semplificare questo lavoro, l'esempio utilizza le [Come usare gli aiutanti di autenticazione](how-to-auth-helper.md) procedure di Amazon Location. Questo serve sia per ottenere che per aggiornare le credenziali.

Questo esempio utilizza l' AWS SDK per la versione 3. JavaScript 

```
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))
```