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.
Cómo permitir el acceso a sus aplicaciones como invitado no autenticado con Amazon Cognito
Puede utilizar la autenticación de Amazon Cognito como alternativa al uso directo AWS Identity and Access Management (IAM) tanto con los SDK de frontend como con las solicitudes HTTPS directas.
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 Cómo permitir el acceso a sus aplicaciones como invitado no autenticado con Amazon 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 en la Guía para desarrolladores de Amazon Cognito.
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 en la Guía para desarrolladores de Amazon Cognito.
nota
Para los desarrolladores de dispositivos móviles, Amazon Location proporciona SDK de autenticación móvil para iOS y Android. Consulte los siguientes repositorios de github para obtener más información:
Creación de un grupo de identidades en Amazon Cognito
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, las API de Amazon Cognito o AWS CLIlas API de Amazon Cognito.
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.
Puede utilizar las políticas de IAM asociadas a los roles de identidad no autenticados con las siguientes acciones:
-
geo:GetMap*
-
geo:SearchPlaceIndex*
-
geo:GetPlace
-
geo:CalculateRoute*
-
geo:GetGeofence
-
geo:ListGeofences
-
geo:PutGeofence
-
geo:BatchDeleteGeofence
-
geo:BatchPutGeofence
-
geo:BatchEvaluateGeofences
-
geo:GetDevicePosition*
-
geo:ListDevicePositions
-
geo:BatchDeleteDevicePositionHistory
-
geo:BatchGetDevicePosition
-
geo:BatchUpdateDevicePosition
La inclusión de otras acciones de Amazon Location no tendrá ningún efecto y las identidades no autenticadas no podrán llamarlas.
Para crear un grupo de identidades con la consola de Amazon Cognito
-
Vaya a la consola de Amazon Cognito
. -
Seleccione Administrar grupos de identidades.
-
Seleccione Crear un nuevo grupo de identidades y, a continuación, introduzca un nombre para su grupo de identidades.
-
En Identidades sin autenticar, elija Habilitar el acceso a identidades sin autenticar.
-
Elija Crear grupo.
-
Elija los roles de IAM que quiera usar con su grupo de identidades.
-
Amplíe Ver detalles.
-
En Identidades no autenticadas, introduzca un nombre de rol.
-
Amplíe la sección Ver documento de política y, a continuación, seleccione Editar para agregar la política.
-
Agregue su política para dar acceso a sus recursos.
Los siguientes son ejemplos de políticas para mapas, lugares, rastreadores y rutas. Para usar los ejemplos en su propia política, reemplace los marcadores de
región
eID de cuenta
:nota
Si bien los grupos de identidades no autenticadas están pensados para ser expuestos en sitios de Internet no seguros, tenga en cuenta que se cambiarán por credenciales estándar y de duración limitada. AWS
Es importante definir adecuadamente los roles de IAM asociadas a los grupos de identidades no autenticadas.
-
Elija Permitir para crear sus grupos de identidades.
El grupo de identidades resultante sigue la sintaxis <
region
>:<GUID
>.
Por ejemplo:
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Para ver más ejemplos de políticas específicas de Amazon Location, consulte Ejemplos de políticas basadas en identidad para Amazon Location Service.
Uso de los grupos de identidades de Amazon Cognito en JavaScript
En el siguiente ejemplo, se intercambia el grupo de identidades no autenticadas que ha creado por credenciales que, a continuación, se utilizan para obtener el descriptor de estilo del recurso de mapa. ExampleMap
const AWS = require("aws-sdk"); const credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: "<identity pool ID>" // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef }); const client = new AWS.Location({ credentials, region: AWS.config.region || "<region>" }); console.log(await client.getMapStyleDescriptor("
ExampleMap
").promise());
nota
Las credenciales recuperadas de identidades no autenticadas son válidas durante una hora.
A continuación, se muestra un ejemplo de una función que renueva automáticamente las credenciales antes de que caduquen.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Para simplificar este trabajo, puede usar la JavaScript Ayudante de autenticación de Amazon Location. Esto sustituye tanto a la obtención de las credenciales como a la actualización de las mismas. En este ejemplo, se usa el SDK de la versión 3 AWS . JavaScript
import { LocationClient, GetMapStyleDescriptorCommand } from "@aws-sdk/client-location"; import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper"; const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef // Create an authentication helper instance using credentials from Cognito const authHelper = await withIdentityPoolId(identityPoolId); const client = new LocationClient({ region: "<region>", // The region containing both the identity pool and tracker resource ...authHelper.getLocationClientConfig(), // Provides configuration required to make requests to Amazon Location }); const input = { MapName: "ExampleMap", }; const command = new GetMapStyleDescriptorCommand(input); console.log(await client.send(command));
Siguientes pasos
-
Para modificar roles, vaya a la consola de IAM
. -
Para gestionar sus grupos de identidades, vaya a la consola de Amazon Cognito
.