

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de Amazon Cognito para la autenticación
<a name="authenticating-using-cognito"></a>

Puede utilizar la autenticación de Amazon Cognito como alternativa al uso directo de usuarios AWS Identity and Access Management (IAM) con solicitudes de SDK de frontend. 

Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web. Puede usar los grupos de identidades no autenticadas de Amazon Cognito con Amazon Location como una forma de que las aplicaciones recuperen credenciales temporales y restringidas. AWS 

Para obtener más información, consulte [Introducción a los grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) en la *Guía para desarrolladores de Amazon Cognito*.

Es posible que desee utilizar esta forma de autenticación por los siguientes motivos:
+ **Usuarios no autenticados**: si tiene un sitio web con usuarios anónimos, puede utilizar los grupos de identidades de Amazon Cognito. 

  Para obtener más información, consulte la sección en [Uso de Amazon Cognito para la autenticación](#authenticating-using-cognito). 
+ **Su propia autenticación**: si desea utilizar su propio proceso de autenticación o combinar varios métodos de autenticación, puede utilizar Amazon Cognito Federated Identities. 

  Para obtener más información, consulte [Introducción a las identidades federadas](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) en la *Guía para desarrolladores de Amazon Cognito*.

## Uso de Amazon Cognito y Amazon Location Service
<a name="cognito-and-location"></a>

Puede utilizar las políticas AWS Identity and Access Management (IAM) asociadas a los roles de identidad no autenticados con las siguientes acciones:

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

Lista de acciones de mapas
+ `geo-maps:GetStaticMap`
+ `geo-maps:GetTile`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

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

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

Lista de acciones de ubicación:
+ `geo-places:Geocode`
+ `geo-places:ReverseGeocode`
+ `geo-places:SearchNearby`
+ `geo-places:SearchText`
+ `geo-places:Autocomplete`
+ `geo-places:Suggest`
+ `geo-places:GetPlace`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

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

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

Lista de acciones de rutas:
+ `geo-routes:CalculateRoutes`
+ `geo-routes:CalculateRouteMatrix`
+ `geo-routes:CalculateIsolines`
+ `geo-routes:OptimizeWaypoints`
+ `geo-routes:SnapToRoads`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

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

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

Lista de acciones de geocercas y rastreadores
+ `geo:GetGeofence`
+ `geo:ListGeofences`
+ `geo:PutGeofence`
+ `geo:BatchDeleteGeofence`
+ `geo:BatchPutGeofence`
+ `geo:BatchEvaluateGeofences`
+ `geo:GetDevicePosition*`
+ `geo:ListDevicePositions`
+ `geo:BatchDeleteDevicePositionHistory`
+ `geo:BatchGetDevicePosition`
+ `geo:BatchUpdateDevicePosition`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

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

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

Lista de acciones de versiones anteriores:
+ `geo:GetMap*`
+ `geo:SearchPlaceIndexForText`
+ `geo:SearchPlaceIndexForPosition`
+ `geo:GetPlace`
+ `geo:CalculateRoute`
+ `geo:CalculateRouteMatrix`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  
**Mapas**  

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

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

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

------

## Creación de un grupo de identidades en Amazon Cognito
<a name="cognito-create-user-pool"></a>

Puede crear grupos de identidades de Amazon Cognito para permitir el acceso de invitados no autenticados a su aplicación a través de la consola de Amazon Cognito, Amazon Cognito o AWS CLI Amazon Cognito. APIs

**importante**  
El grupo que cree debe estar en la misma AWS región Cuenta de AWS y en la misma región que los recursos de Amazon Location Service que esté utilizando.

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

**Para crear un grupo de identidades con la consola de Amazon Cognito**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Seleccione **Administrar grupos de identidades**.

1. Seleccione **Crear un nuevo grupo de identidades** y, a continuación, introduzca un nombre para su grupo de identidades.

1. En **Identidades sin autenticar**, elija **Habilitar el acceso a identidades sin autenticar**.

1. Elija **Crear grupo**.

1. Elija los roles de IAM que quiera usar con su grupo de identidades.

1. Amplíe **Ver detalles**. 

1. En **Identidades no autenticadas**, introduzca un nombre de rol.

1. Amplíe la sección **Ver documento de política** y, a continuación, seleccione **Editar** para agregar la política.

1. Agregue su política para dar acceso a sus recursos.
**nota**  
Consulte la sección [Uso de Amazon Cognito y Amazon Location Service](#cognito-and-location) anterior para ver una lista de acciones.

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

1. Elija **Permitir** para crear sus grupos de identidades.

------

## Uso del grupo de identidades de Amazon Cognito en la web
<a name="identity-pool-js"></a>

En el siguiente ejemplo, se intercambia el grupo de identidades no autenticadas que ha creado por credenciales que, a continuación, se utilizan para llamar a `CalculateIsolines`. Para simplificar este trabajo, el ejemplo usa los procedimientos [Cómo utilizar los ayudantes de autenticación](how-to-auth-helper.md) de Amazon Location. Esto sustituye a la obtención de las credenciales y a la actualización de las mismas.

En este ejemplo, se utiliza el AWS SDK de la JavaScript versión 3.

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