Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Autoriser l'accès invité non authentifié à votre application à l'aide d'Amazon Cognito
Vous pouvez utiliser l'authentification Amazon Cognito au lieu d'utiliser directement AWS Identity and Access Management (IAM) pour les requêtes frontales SDKs et directesHTTPS.
Vous souhaiterez peut-être utiliser cette forme d'authentification pour les raisons suivantes :
-
Utilisateurs non authentifiés : si votre site Web comporte des utilisateurs anonymes, vous pouvez utiliser les groupes d'identités Amazon Cognito. Pour plus d'informations, consultez la section surAutoriser l'accès invité non authentifié à votre application à l'aide d'Amazon Cognito.
-
Votre propre authentification — Si vous souhaitez utiliser votre propre processus d'authentification ou combiner plusieurs méthodes d'authentification, vous pouvez utiliser les identités fédérées Amazon Cognito. Pour plus d'informations, consultez Getting Started with Federated Identities dans le manuel Amazon Cognito Developer Guide.
Amazon Cognito fournit des fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs pour les applications Web et mobiles. Vous pouvez utiliser les pools d'identités non authentifiés Amazon Cognito avec Amazon Location pour permettre aux applications de récupérer des informations d'identification temporaires et limitées. AWS
Pour plus d'informations, consultez Getting Started with User Pools dans le manuel Amazon Cognito Developer Guide.
Note
Pour les développeurs mobiles, Amazon Location fournit une authentification mobile SDKs pour iOS et Android. Consultez les GitHub référentiels suivants pour plus d'informations :
Créer un groupe d’identités Amazon Cognito
Vous pouvez créer des groupes d'identités Amazon Cognito pour autoriser un accès invité non authentifié à votre application via la console Amazon Cognito, le ou AWS CLI Amazon Cognito. APIs
Important
Le pool que vous créez doit se trouver dans Compte AWS la même AWS région que les ressources Amazon Location Service que vous utilisez.
Vous pouvez utiliser IAM les politiques associées aux rôles d'identité non authentifiés avec les actions suivantes :
-
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
L'inclusion d'autres actions Amazon Location n'aura aucun effet et les identités non authentifiées ne pourront pas les appeler.
Pour créer un pool d'identités à l'aide de la console Amazon Cognito
-
Accédez à la console Amazon Cognito
. -
Choisissez Manage Identity groupes (Gérer les groupes d'identité).
-
Choisissez Créer un nouveau groupe d'identités, puis entrez le nom de votre groupe d'identités.
-
Dans la section pliable Identités non authentifiées, choisissez Activer l'accès aux identités non authentifiées.
-
Sélectionnez Créer une réserve.
-
Choisissez les IAM rôles que vous souhaitez utiliser avec votre pool d'identités.
-
Agrandir Afficher les détails.
-
Sous Identités non authentifiées, entrez un nom de rôle.
-
Développez la section Afficher le document de politique, puis choisissez Modifier pour ajouter votre politique.
-
Ajoutez votre politique pour autoriser l'accès à vos ressources.
Vous trouverez ci-dessous des exemples de politiques pour les cartes, les lieux, les traceurs et les itinéraires. Pour utiliser les exemples pour votre propre politique, remplacez le
region
andaccountID
espaces réservés :Note
Bien que les pools d'identités non authentifiés soient destinés à être exposés sur des sites Internet non sécurisés, notez qu'ils seront échangés contre des informations d'identification standard limitées dans le temps. AWS
Il est important de définir de manière appropriée les IAM rôles associés aux pools d'identités non authentifiés.
-
Choisissez Autoriser pour créer vos groupes d'identités.
Le pool d'identités qui en résulte suit la syntaxe <
region
>:<GUID
>.
Par exemple :
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Pour plus d'exemples de politiques spécifiques à Amazon Location, consultezExemples de politiques basées sur l'identité pour Amazon Location Service.
Utilisez les groupes d'identités Amazon Cognito dans JavaScript
L'exemple suivant échange le pool d'identités non authentifié que vous avez créé contre des informations d'identification qui sont ensuite utilisées pour récupérer le descripteur de style de votre ressource cartographique. 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());
Note
Les informations d'identification récupérées à partir d'identités non authentifiées sont valides pendant une heure.
Voici un exemple de fonction qui renouvelle automatiquement les informations d'identification avant leur expiration.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Pour simplifier ce travail, vous pouvez utiliser l'Amazon LocationJavaScript Aide à l'authentification. Cela permet à la fois d'obtenir les informations d'identification et de les actualiser. Cet exemple utilise le AWS SDK for JavaScript v3.
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));
Étapes suivantes
-
Pour modifier vos rôles, accédez à la IAMconsole
. -
Pour gérer vos groupes d'identités, accédez à la console Amazon Cognito
.