Consenti l'accesso degli ospiti non autenticati alla tua applicazione utilizzando le chiavi API - Servizio di posizione Amazon

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 le chiavi API

Quando chiami Amazon Location Service APIs nelle tue applicazioni, in genere effettui questa chiamata come utente autenticato autorizzato a effettuare le API chiamate. Tuttavia, ci sono alcuni casi in cui non desideri autenticare tutti gli utenti della tua applicazione. Ad esempio, potresti volere che un'applicazione web che mostri la sede della tua attività commerciale sia disponibile per tutti gli utenti del sito Web, indipendentemente dal fatto che abbiano effettuato l'accesso o meno. In questo caso, un'alternativa consiste nell'utilizzare i API tasti per effettuare le API chiamate.

APIle chiavi sono un valore chiave associato a risorse specifiche di Amazon Location Service presenti nelle tue Account AWS risorse e ad azioni specifiche che puoi eseguire su tali risorse. Puoi utilizzare una API chiave nella tua applicazione per effettuare chiamate non autenticate all'Amazon Location APIs per tali risorse. Ad esempio, se associ una API chiave alla risorsa myMapdella mappa e GetMap* alle azioni, un'applicazione che utilizza quella API chiave sarà in grado di visualizzare le mappe create con quella risorsa e al tuo account verrà addebitato come qualsiasi altro utilizzo del tuo account. APILa stessa chiave non consentirebbe di modificare o aggiornare la risorsa della mappa: è consentito solo l'utilizzo della risorsa.

Nota

APIle chiavi possono essere utilizzate solo con le risorse relative a mappe, luoghi e percorsi e non è possibile modificare o creare tali risorse. Se la tua applicazione richiede l'accesso ad altre risorse o azioni per gli utenti non autenticati, puoi utilizzare Amazon Cognito per fornire l'accesso insieme o al posto delle chiavi. API Per ulteriori informazioni, consulta Consenti l'accesso degli ospiti non autenticati alla tua applicazione utilizzando Amazon Cognito.

APIle chiavi includono un valore di testo semplice che dà accesso a una o più risorse del tuo. Account AWS Se qualcuno copia la tua API chiave, può accedere a quelle stesse risorse. Per evitare ciò, è possibile specificare i domini in cui è possibile utilizzare la API chiave al momento della creazione della chiave. Questi domini sono chiamati referenti. Se necessario, puoi anche creare API chiavi a breve termine impostando i tempi di scadenza delle tue API chiavi.

APIchiavi confrontate con Amazon Cognito

APIle chiavi e Amazon Cognito vengono utilizzate in modi simili per scenari simili, quindi perché dovresti usarne una rispetto all'altra? L'elenco seguente evidenzia alcune delle differenze tra i due.

  • APIle chiavi sono disponibili solo per le risorse relative a mappe, luoghi e percorsi e solo per determinate azioni. Amazon Cognito può essere utilizzato per autenticare l'accesso alla maggior parte di Amazon Location Service. APIs

  • Le prestazioni delle richieste di mappe con API chiavi sono in genere più veloci rispetto a scenari simili con Amazon Cognito. Un'autenticazione più semplice significa un minor numero di round trip verso il servizio e di richieste memorizzate nella cache quando si ottiene nuovamente lo stesso riquadro della mappa in un breve periodo di tempo.

  • Con Amazon Cognito, puoi utilizzare il tuo processo di autenticazione o combinare più metodi di autenticazione, utilizzando Amazon Cognito Federated Identities. Per ulteriori informazioni, consulta Getting Started with Federated Identities nella Amazon Cognito Developer Guide.

Crea chiavi API

Puoi creare una API chiave e associarla a una o più risorse del tuo Account AWS.

Puoi creare una API chiave utilizzando la console Amazon Location Service AWS CLI, o Amazon LocationAPIs.

Console
Per creare una API chiave utilizzando la console Amazon Location Service
  1. Nella console Amazon Location, scegli i APItasti dal menu a sinistra.

  2. Nella pagina delle APIchiavi, scegli Crea API chiave.

  3. Nella pagina Crea API chiave, inserisci le seguenti informazioni:

    • Nome: un nome per la API chiave, ad esempioMyWebAppKey.

    • Descrizione: una descrizione facoltativa per la API chiave.

    • Risorse: scegli le risorse di Amazon Location a cui consentire l'accesso con questa API chiave dal menu a discesa. Puoi aggiungere più di una risorsa selezionando Aggiungi risorsa.

    • Azioni: specifica le azioni che desideri autorizzare con questa API chiave. È necessario selezionare almeno un'azione che corrisponda a ciascun tipo di risorsa selezionato. Ad esempio, se hai selezionato una risorsa relativa ai luoghi, devi selezionare almeno una delle scelte in Azioni relative ai luoghi.

    • Ora di scadenza: facoltativamente, aggiungi una data e un'ora di scadenza per la tua API chiave. Per ulteriori informazioni, consulta Gestisci la durata API delle chiavi.

    • Referenti: facoltativamente, aggiungi uno o più domini in cui utilizzare la chiave. API Ad esempio, se la API chiave serve a consentire l'esecuzione di un'applicazione sul sito Webexample.com, è possibile inserirla *.example.com/ come referente consentito.

    • Tag: facoltativamente, aggiungi tag alla API chiave.

  4. Scegli Crea API chiave per creare la API chiave.

  5. Nella pagina dei dettagli della API chiave, puoi vedere le informazioni sulla API chiave che hai creato. Scegli Mostra API chiave per vedere il valore della chiave che usi quando chiami Amazon LocationAPIs. Il valore della chiave avrà il formatov1.public.a1b2c3d4.... Per ulteriori informazioni sull'utilizzo della API chiave per il rendering delle mappe, vedereUsa una API chiave per eseguire il rendering di una mappa.

API

Per creare una API chiave utilizzando Amazon Location APIs

Usa l'CreateKeyoperazione dalla sede AmazonAPIs.

L'esempio seguente è una API richiesta di creazione di una API chiave chiamata ExampleKey senza data di scadenza e accesso a una singola risorsa cartografica.

POST /metadata/v0/keys HTTP/1.1 Content-type: application/json { "KeyName": "ExampleKey" "Restrictions": { "AllowActions": [ "geo:GetMap*" ], "AllowResources": [ "arn:aws:geo:region:map/mapname" ] }, "NoExpiry": true } }

La risposta include il valore API chiave da utilizzare per l'accesso alle risorse delle applicazioni. Il valore chiave avrà il formatov1.public.a1b2c3d4.... Per ulteriori informazioni sull'utilizzo della API chiave per il rendering delle mappe, consultaUsa una API chiave per eseguire il rendering di una mappa.

Puoi anche usare il DescribeKey API per trovare il valore chiave per una chiave in un secondo momento.

AWS CLI

Per creare una API chiave utilizzando AWS CLI i comandi

Utilizza il comando create-key.

L'esempio seguente crea una API chiave chiamata ExampleKey senza data di scadenza e accesso a una singola risorsa cartografica.

aws location \ create-key \ --key-name ExampleKey \ --restrictions '{"AllowActions":["geo:GetMap*"],"AllowResources":["arn:aws:geo:region:map/mapname"]}' \ --no-expiry

La risposta include il valore API chiave da utilizzare per l'accesso alle risorse delle applicazioni. Il valore chiave avrà il formatov1.public.a1b2c3d4.... Per ulteriori informazioni sull'utilizzo della API chiave per il rendering delle mappe, consultaUsa una API chiave per eseguire il rendering di una mappa. La risposta a è create-key simile alla seguente.

{ "Key": "v1.public.a1b2c3d4...", "KeyArn": "arn:aws:geo:region:accountId:api-key/ExampleKey", "KeyName": "ExampleKey", "CreateTime": "2023-02-06T22:33:15.693Z" }

Puoi anche usarlo describe-key per trovare il valore chiave in un secondo momento. L'esempio seguente mostra come describe-key richiamare una API chiave denominata ExampleKey.

aws location describe-key \ --key-name ExampleKey

Usa una API chiave per chiamare una sede Amazon API

Dopo aver creato una API chiave, puoi utilizzare il valore della chiave per effettuare chiamate verso Amazon Location APIs nella tua applicazione.

Le API chiavi di supporto APIs che supportano tale codice hanno un parametro aggiuntivo che assume il valore della API chiave. Ad esempio, se chiamate il GetPlaceAPI, potete inserire il parametro key nel modo seguente

GET /places/v0/indexes/IndexName/places/PlaceId?key=KeyValue

Se inserisci questo valore, non è necessario autenticare la API chiamata con AWS Sig v4 come faresti normalmente.

Per JavaScript gli sviluppatori, puoi utilizzare Amazon Location JavaScript Aiutante di autenticazione per facilitare l'autenticazione API delle operazioni con API le chiavi.

Per gli sviluppatori di dispositivi mobili, puoi utilizzare la seguente autenticazione mobile Amazon LocationSDKs:

Per AWS CLI gli utenti, quando si utilizza il --key parametro, è necessario utilizzare anche il --no-sign-request parametro, per evitare di firmare con Sig v4.

Nota

Se includi key sia una firma che una firma AWS Sig v4 in una chiamata ad Amazon Location Service, viene utilizzata solo la API chiave.

Usa una API chiave per eseguire il rendering di una mappa

È possibile utilizzare il valore della API chiave per eseguire il rendering di una mappa nell'applicazione utilizzando MapLibre. Questo metodo è leggermente diverso rispetto all'utilizzo delle API chiavi in un'altra sede Amazon APIs che chiami direttamente, perché MapLibre effettua quelle chiamate al posto tuo.

Il codice di esempio seguente mostra l'utilizzo della API chiave per eseguire il rendering di una mappa in una semplice pagina Web utilizzando il controllo della mappa MapLibre GL JS. Affinché questo codice funzioni correttamente, sostituite il v1.public.your-api-key-value, us-east-1e ExampleMap stringhe con valori che corrispondono ai tuoi Account AWS.

<!-- index.html --> <html> <head> <link href="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.css" rel="stylesheet" /> <style> body { margin: 0; } #map { height: 100vh; } </style> </head> <body> <!-- Map container --> <div id="map" /> <!-- JavaScript dependencies --> <script src="https://unpkg.com/maplibre-gl@1.14.0/dist/maplibre-gl.js"></script> <script> const apiKey = "v1.public.your-api-key-value"; // API key const region = "us-east-1"; // Region const mapName = "ExampleMap"; // Map name // URL for style descriptor const styleUrl = `https://maps.geo.${region}.amazonaws.com/maps/v0/maps/${mapName}/style-descriptor?key=${apiKey}`; // Initialize the map const map = new maplibregl.Map({ container: "map", style: styleUrl, center: [-123.1187, 49.2819], zoom: 11, }); map.addControl(new maplibregl.NavigationControl(), "top-left"); </script> </body> </html>

Gestisci la durata API delle chiavi

Puoi creare API chiavi che funzionano all'infinito. Tuttavia, se desideri creare una API chiave temporanea, ruotare API le chiavi regolarmente o revocare una API chiave esistente, puoi utilizzare la scadenza delle chiavi. API

Quando si crea una nuova API chiave o se ne aggiorna una esistente, è possibile impostare la data di scadenza di tale chiave. API

  • Quando una API chiave raggiunge la scadenza, viene disattivata automaticamente. Le chiavi inattive non possono più essere utilizzate per effettuare richieste di mappe.

  • È possibile eliminare una API chiave 90 giorni dopo averla disattivata.

  • Se hai una chiave inattiva che non hai ancora eliminato, puoi ripristinarla aggiornando l'ora di scadenza a un'ora futura.

  • Per creare una chiave permanente, puoi rimuovere la data di scadenza.

  • Se tenti di disattivare una API chiave che è stata utilizzata negli ultimi 7 giorni, ti verrà richiesto di confermare che desideri apportare la modifica. Se utilizzi Amazon Location ServiceAPI, o il AWS CLI, riceverai un errore, a meno che non imposti il ForceUpdate parametro su true.