In questo articolo parliamo del componente GEO, del geocoding e dell’aggiunta di una nuova API key per consentire una migliore gestione delle restrizioni.

Abbiamo già parlato del componente GEO in un articolo precedente, in cui abbiamo trattato l’argomento da un punto di vista più tecnico. Per chi non lo ricordasse, questo componente è quello che consente l’inserimento di mappe geografiche, con vari livelli di dettaglio, all’interno di pagine web. Permette inoltre la loro personalizzazione tramite l’aggiunta di marcatori in specifiche posizioni. Di seguito vediamo meglio come funziona e cosa è cambiato.

Geocoding e rendering

Il componente GEO permette di mostrare dei marcatori o delle aree all’interno di mappe geografiche. La definizione di cosa rappresentare avviene specificando le coordinate sulla mappa (latitudine e longitudine), oppure specificando un indirizzo, che viene poi convertito in automatico nelle coordinate corrispondenti. Il processo di generazione della mappa si divide quindi in due parti:

  1. Geocoding, ovvero il processo di conversione dell’indirizzo in coordinate, gestito dal lato server;
  2. Rendering, che è la rappresentazione grafica delle mappe e dei marcatori, secondo le coordinate fornite, ed è effettuata dal componente client side.

Naturalmente, se il primo non viene completato, non è possibile procedere con il secondo nel caso in cui l’informazione fornita sia un indirizzo.

Il ruolo delle chiavi API

La comunicazione con i servizi di Google Maps, che forniscono le vere e proprie mappe su cui si basa il componente GEO, avviene tramite API keys personalizzate. Queste chiavi devono essere registrate nella configurazione del server webup su cui si desidera rappresentare la mappa.

Ogni mese Google mette a disposizione dei propri clienti 200$ di credito gratuito spendibili sui diversi servizi di Maps. Una volta superata questa soglia, le chiamate vengono pagate in pacchetti da 1000 call. È quindi molto importante proteggere le proprie chiavi, in modo tale che non vengano rubate e spammate generando costi per l’azienda.

Restrizioni

Google permette di impostare delle restrizioni tramite cui è possibile definire dei siti web referrer, o degli indirizzi IP, da cui devono provenire le chiamate perché ricevano risposta. Proprio per questa ragione, nella sezione “advanced customization” è stata aggiunta una proprietà per un’ulteriore chiave. Esistono adesso due campi relativi alle API keys:

  • Google Maps API Key, la chiave relativa al lato client, ovvero la parte rendering del processo di generazione della mappa. Questa chiave può essere ristretta a livello di sito, impostando l’indirizzo web del sito da cui deve provenire la chiamata.
  • Geocoding API Key, la chiave relativa al lato server, ovvero la parte di geocoding. In questo caso è possibile creare una restrizione a livello di indirizzo IP, impostando quelli da cui deve provenire la chiamata.
Immagine illustrativa della sezione advanced customization, contenente la nuova voce Geocoding API Key, nuova aggiunta al componente GEO

Sono state aggiunte due chiavi diverse in modo che possano essere personalizzate singolarmente come meglio si desidera. Se la seconda chiave (quella del geocoding) è vuota, viene utilizzata la prima.

Come impostare le restrizioni

Per attivare le limitazioni relative ai siti web referrer citate sopra bisogna:

  1. visitare il sito https://console.cloud.google.com/projectselector2/google/maps-apis/credentials;
  2. scegliere l’API key su cui si vuole impostare una restrizione;
  3. sotto la voce “restrizioni delle applicazioni” nel menù credenziali, selezionare “referrer http”;
  4. alla voce “restrizioni relative ai siti web” inserire ad esempio *.smeup.com (ovvero, il dominio del sito a cui si vuole fornire l’autorizzazione preceduto da un asterisco);
  5. in “Restrizioni delle API” selezionare “limita chiave” ed impostare “1 API”;
  6. per applicare le modifiche, salvare.
Immagine illustrativa di come impostare le restrizioni relative alle API keys del componente GEO


Per impostare invece le limitazioni relative a determinati indirizzi IP occorre:

  1. visitare il sito https://console.cloud.google.com/projectselector2/google/maps-apis/credentials;
  2. scegliere l’API key su cui si vuole impostare una restrizione;
  3. sotto la voce “restrizioni delle applicazioni” nel menù credenziali, selezionare “Indirizzi IP”;
  4. alla voce “accetta le richieste da questi indirizzi IP server” inserire uno o più indirizzi IP a cui si vuole fornire l’autorizzazione;
  5. in “Restrizioni delle API” selezionare “limita chiave” ed impostare “1 API”;
  6. per applicare le modifiche, salvare.
Immagine illustrativa di come impostare le restrizioni relative alle API keys del componente GEO