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) à la fois avec les SDK frontaux et les requêtes HTTPS directes.
Vous souhaiterez peut-être utiliser cette forme d'authentification pour les raisons suivantes :
-
Utilisateurs non authentifiés : si vous avez un site Web avec 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 des kits SDK d'authentification mobile pour iOS et Android. Consultez les référentiels github 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 par le biais de la console Amazon Cognito, des API Amazon Cognito ou AWS CLIdes API Amazon Cognito.
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 les politiques IAM associées à des 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 rôles IAM 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 les espaces réservés à la
région
et à l'AccountID
: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 rôles IAM 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.
Utilisation des 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 pour la JavaScript version 3.
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 console IAM.
-
Pour gérer vos groupes d'identités, accédez à la console Amazon Cognito
.