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à.
Consenti l'accesso degli ospiti non autenticati alla tua applicazione utilizzando Amazon Cognito
Puoi utilizzare l'autenticazione Amazon Cognito come alternativa all'utilizzo diretto AWS Identity and Access Management (IAM) con richieste front-end SDKs e diretteHTTPS.
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. Consenti l'accesso degli ospiti non autenticati alla tua applicazione utilizzando Amazon 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 nella Amazon Cognito Developer Guide.
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 nella Amazon Cognito Developer Guide.
Nota
Per gli sviluppatori di dispositivi mobili, Amazon Location fornisce l'autenticazione mobile sia SDKs per iOS che per Android, consulta i seguenti GitHub repository per maggiori informazioni:
Creazione di un pool di identità in Amazon Cognito
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.
Puoi utilizzare IAM le policy associate a ruoli di identità non autenticati con le seguenti azioni:
-
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'inclusione di altre azioni di Amazon Location non avrà alcun effetto e le identità non autenticate non saranno in grado di chiamarle.
Per creare un pool di identità utilizzando la console Amazon Cognito
-
Passa alla console Amazon Cognito
. -
Scegli Manage Identity Pools (Gestisci pool di identità).
-
Scegli Crea nuovo pool di identità, quindi inserisci un nome per il tuo pool di identità.
-
Dalla sezione pieghevole Identità non autenticate, scegli Abilita l'accesso alle identità non autenticate.
-
Seleziona Create Pool (Crea pool).
-
Scegli quali IAM ruoli vuoi usare con il tuo pool di identità.
-
Espandi Visualizza dettagli.
-
In Identità non autenticate, inserisci il nome del ruolo.
-
Espandi la sezione Visualizza documento di policy, quindi scegli Modifica per aggiungere la tua policy.
-
Aggiungi la tua politica per concedere l'accesso alle tue risorse.
Di seguito sono riportati alcuni esempi di policy per Maps, Places, Tracker e Routes. Per utilizzare gli esempi per la tua politica, sostituisci il
region
eaccountID
segnaposti:Nota
Sebbene i pool di identità non autenticati siano destinati all'esposizione su siti Internet non protetti, tieni presente che verranno scambiati con credenziali standard a tempo limitato. AWS
È importante definire in modo appropriato i IAM ruoli associati ai pool di identità non autenticati.
-
Scegli Consenti per creare i tuoi pool di identità.
Il pool di identità risultante segue la sintassi <
region
>:<GUID
>.
Per esempio:
us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef
Per altri esempi di policy specifici per Amazon Location, consultaEsempi di policy basate sull'identità per Amazon Location Service.
Usa i pool di identità di Amazon Cognito in JavaScript
L'esempio seguente scambia il pool di identità non autenticato che hai creato con credenziali che vengono poi utilizzate per recuperare il descrittore di stile per la risorsa della mappa 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
Le credenziali recuperate da identità non autenticate sono valide per un'ora.
Di seguito è riportato un esempio di funzione che rinnova automaticamente le credenziali prima della scadenza.
async function refreshCredentials() { await credentials.refreshPromise(); // schedule the next credential refresh when they're about to expire setTimeout(refreshCredentials, credentials.expireTime - new Date()); }
Per semplificare questo lavoro, puoi utilizzare Amazon LocationJavaScript Aiutante di autenticazione. Questo serve sia per ottenere le credenziali che per aggiornarle. Questo esempio utilizza 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));
Passaggi successivi
-
Per modificare i tuoi ruoli, vai alla IAMconsole
. -
Per gestire i tuoi pool di identità, accedi alla console Amazon Cognito
.