Utilizzare l'API ARCore su Google Cloud

Seleziona la piattaforma:

Le funzionalità ARCore come l'API Geospatial e i Cloud Anchor utilizzano l'API ARCore ospitata su Google Cloud. Quando usi queste funzionalità, l'applicazione usa le credenziali per accedere al servizio API ARCore.

Questa guida rapida descrive come configurare la tua applicazione in modo che possa comunicare con il servizio API ARCore ospitato su Google Cloud.

Crea un nuovo progetto Google Cloud o utilizzane uno esistente

Se hai già un progetto, selezionalo.

Vai al selettore progetti

Se non hai ancora un progetto Google Cloud, creane uno.

Crea un nuovo progetto

Abilita l'API ARCore

Per utilizzare l'API ARCore, devi abilitarla nel tuo progetto.

Abilita l'API ARCore

Configura un metodo di autorizzazione

Un'applicazione iOS può comunicare con l'API ARCore utilizzando due diversi metodi di autorizzazione: Autorizzazione senza chiave, che è il metodo consigliato, e Autorizzazione con chiave API:

  • L'autorizzazione senza chiave utilizza un token firmato per controllare l'accesso all'API. Questo metodo richiede che un server di tua proprietà firmi i token e controlli l'accesso all'API.
  • Una chiave API è una stringa che identifica un progetto Google Cloud. Generalmente le chiavi API non sono considerate sicure poiché sono accessibili ai client. Valuta la possibilità di utilizzare l'autorizzazione del token per comunicare con l'API ARCore.

Senza chiave

ARCore supporta l'autorizzazione delle chiamate API in iOS utilizzando un token web JSON. Il token deve essere firmato da un account di servizio Google.

Per generare token per iOS, devi avere un endpoint sul server che soddisfi i seguenti requisiti:

  • Il meccanismo di autorizzazione deve proteggere l'endpoint.

  • L'endpoint deve generare ogni volta un nuovo token, in modo che:

    • Ogni utente riceve un token univoco.
    • I token non scadono immediatamente.

Crea un account di servizio e una chiave di firma

Segui questi passaggi per creare un account di servizio Google e una chiave di firma:

  1. In Google Cloud, apri la pagina Credenziali.
    Credenziali
  2. Fai clic su Crea credenziali > Account di servizio.
  3. In Dettagli account di servizio, digita un nome per il nuovo account e fai clic su Crea.
  4. Nella pagina Autorizzazioni account di servizio, vai al menu a discesa Seleziona un ruolo. Seleziona Account di servizio > Creatore token account di servizio, quindi fai clic su Continua.
  5. Nella pagina Concedi agli utenti l'accesso a questo account di servizio, fai clic su Fine.
  6. Nella pagina Credenziali, individua la sezione Account di servizio e fai clic sul nome dell'account appena creato.
  7. Nella pagina Dettagli account di servizio, scorri verso il basso fino alla sezione Chiavi e seleziona Aggiungi chiave > Crea nuova chiave.
  8. Seleziona JSON come tipo di chiave e fai clic su Crea.

    In questo modo viene scaricato un file JSON contenente la chiave privata sulla tua macchina. Archivia il file di chiave JSON scaricato in un luogo sicuro.

Creare token sul server

Per creare nuovi token (JWT) sul tuo server, utilizza le librerie JWT standard e il file JSON che hai scaricato in modo sicuro dal tuo nuovo account di servizio.

Crea token sulla tua macchina di sviluppo

Per generare JWT sulla tua macchina di sviluppo, utilizza il seguente comando oauth2l:

oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"

È necessario specificare una posizione della cache vuota utilizzando il flag --cache per garantire che ogni volta venga generato un token diverso. Assicurati di tagliare la stringa risultante. Se sono presenti spazi o caratteri di nuova riga in eccesso, l'API rifiuterà il token.

Firma il token

Per firmare il JWT, devi utilizzare l'algoritmo RS256 e le seguenti attestazioni:

  • iss: l'indirizzo email dell'account di servizio.
  • sub: l'indirizzo email dell'account di servizio.
  • iat: data e ora di Unix in cui è stato generato il token, in secondi.
  • exp - iat + 3600 (1 ora). Il periodo di tempo di Unix in cui scade il token, in secondi.
  • aud: il pubblico. Deve essere impostato su https://arcore.googleapis.com/.

Le attestazioni non standard non sono necessarie nel payload JWT, ma la richiesta uid potrebbe risultare utile per identificare l'utente corrispondente.

Se utilizzi un approccio diverso per generare i JWT, ad esempio utilizzando un'API Google in un ambiente gestito da Google, assicurati di firmare i JWT con le attestazioni in questa sezione. Innanzitutto, assicurati che il pubblico sia corretto.

Passare il token nella sessione ARCore

  1. Crea una sessione utilizzando GARSession#sessionWithError:.

    NSError *error = nil;
    GARSession *garSession = [GARSession sessionWithError:&error];
    
  2. Quando ottieni un token, passalo alla sessione utilizzando setAuthToken:. In caso contrario, la sessione utilizzerà il token di autorizzazione più recente che hai trasmesso. Chiama questo metodo ogni volta che aggiorni il token:

    [garSession setAuthToken: authToken]
    

Ora la tua app è configurata per utilizzare l'autenticazione senza chiave.

Quando passi un token alla sessione, tieni presente quanto segue:

  • Se hai utilizzato una chiave API per creare la sessione, ARCore ignorerà il token e registrerà un errore.

    Se non ti serve più la chiave API, eliminala in Google Developers Console e rimuovila dall'app.

  • ARCore ignora i token che contengono spazi o caratteri speciali.

  • In genere i token scadono dopo un'ora. Se esiste la possibilità che il token scada durante l'uso, ottieni un nuovo token e passalo all'API.

Chiave API

  1. In Google Cloud, apri la pagina Credenziali.
    Credenziali
  2. Fai clic su Crea credenziali, quindi seleziona Chiave API dal menu.
    Nella finestra di dialogo della chiave API creata viene visualizzata la stringa per la chiave appena creata.
  3. Quando crei una GARSession, utilizza GARSession#sessionWithAPIKey:bundleIdentifier:error: e inserisci la chiave API:

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    
  4. Consulta la documentazione sulle restrizioni relative alle chiavi API per proteggere la tua chiave API.

Ora la tua app è configurata per utilizzare le chiavi API.

Passaggi successivi

Con l'autorizzazione configurata, controlla le seguenti funzionalità di ARCore che la utilizzano: