Utiliser l'API ARCore sur Google Cloud

Sélectionnez une plate-forme: <ph type="x-smartling-placeholder"></ph>

des fonctionnalités ARCore telles que l'API Geospatial API et Cloud Anchors utilisent API ARCore hébergée sur Google Cloud. Lorsque vous utilisez ces fonctionnalités, votre application utilise des identifiants pour accéder au service de l'API ARCore.

Ce guide de démarrage rapide explique comment configurer votre application pour qu'elle puisse communiquer avec le service d'API ARCore hébergé sur Google Cloud.

Créer un projet Google Cloud ou utiliser un projet existant

Si vous en avez déjà un, sélectionnez-le.

Accéder au sélecteur de projet

Si vous ne disposez d'aucun projet Google Cloud, créez-en un.

Créer un projet

Activer l'API ARCore

Pour utiliser l'API ARCore, vous devez l'activer dans votre projet.

Activer l'API ARCore

Configurer une méthode d'autorisation

Une application Unity peut communiquer avec l'API ARCore via deux types méthodes d'autorisation: l'autorisation sans clé, qui est l'option la méthode recommandée et l'autorisation via des clés API:

  • Sur Android, l'autorisation sans clé utilise une combinaison du nom de package de l'application. et l'empreinte de la clé de signature pour autoriser votre application.

    Sur iOS, l'autorisation sans clé utilise un jeton signé pour contrôler l'accès à l'API. Ce nécessite qu'un serveur dont vous êtes propriétaire signe des jetons et contrôle l'accès à l'API.

  • Une clé API est une chaîne qui identifie un projet Google Cloud. Les clés API sont généralement pas considérés comme sécurisés car ils sont généralement accessibles aux clients. Envisagez d'utiliser l'autorisation sans clé pour communiquer avec l'API ARCore.

Clé

Pour autoriser votre application à l'aide de l'authentification sans clé, créez un client OAuth 2.0. ID.

Déterminer les empreintes d'une clé de signature

Un ID client OAuth 2.0 utilise l'empreinte de la clé de signature de votre application pour identifier votre l'application.

Obtenir l'empreinte de votre signature de débogage

Lors de l'exécution ou du débogage de votre projet, les outils Android SDK signent automatiquement votre application avec un certificat de débogage généré.

Utilisez la commande suivante pour obtenir l'empreinte du certificat de débogage.

<ph type="x-smartling-placeholder">
</ph> <ph type="x-smartling-placeholder">
</ph>
Mac/Linux
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
<ph type="x-smartling-placeholder">
</ph>
Fenêtres
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

L'utilitaire keytool vous invite à saisir un mot de passe pour le keystore. La le mot de passe par défaut du keystore de débogage est android. L'utilitaire keytool imprime l'empreinte sur le terminal. Exemple :

   Certificate fingerprint: SHA1: <strong>DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

Obtenir une empreinte de signature à partir d'un keystore

Si vous disposez d'un fichier keystore, utilisez l'utilitaire keytool pour déterminer l'empreinte.

keytool -list -v -alias your-key-name -keystore path-to-production-keystore

L'utilitaire keytool affiche ensuite l'empreinte sur le terminal. Exemple :

   Certificate fingerprint: SHA1: DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

Obtenir la clé de signature de votre application auprès du service Signature d'application Play

Si vous utilisez le service Signature d'application Play, Google gère la clé de signature de votre application et l'utilise pour signer vos APK. Cette clé doit être utilisée pour l'empreinte digitale de signature.

  1. Sur la page Signature d'application de la Google Play Console, faites défiler la page jusqu'à Certificat de la clé de signature d'application.
  2. Utilisez l'empreinte du certificat SHA-1.

Créer des ID client OAuth 2.0

Pour chaque clé de signature applicable obtenue aux étapes précédentes, créez un ID client OAuth 2.0 dans votre Identifiants du projet Google Cloud.

  • Dans Google Cloud, ouvrez la page "Identifiants".

    Identifiants

  • Cliquez sur Créer des identifiants, puis sélectionnez ID client OAuth dans le menu.

  • Remplissez les champs obligatoires comme suit:

    • Type d'application: sélectionnez Android.
    • Package name (Nom du package) : utilisez le nom du package tel qu'il est déclaré dans le fichier AndroidManifest.xml.
    • Empreinte du certificat SHA-1: utilisez une empreinte obtenue aux étapes précédentes.
  • Appuyez sur Créer.

Inclure les bibliothèques requises

  1. Incluez com.google.android.gms:play-services-auth:16+ dans les dépendances de votre application.
  2. Si vous utilisez la minimisation du code, Ajoutez-le au fichier build.gradle de votre application:

    buildTypes {
      release {
        ...
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
      }
    }
    
  3. Ajoutez le code suivant au fichier proguard-rules.pro de votre application:

    -keep class com.google.android.gms.common.** { *; }
    -keep class com.google.android.gms.location.** { *; }
    -keep class com.google.android.gms.auth.** { *; }
    -keep class com.google.android.gms.tasks.** { *; }
    

Votre application est maintenant configurée pour utiliser l'authentification sans clé.

Clé

ARCore prend en charge l'autorisation des appels d'API dans iOS à l'aide d'un (JSON Web jeton). Le jeton doit être signé par un Compte de service

Afin de générer des jetons pour iOS, vous devez disposer d'un point de terminaison sur votre serveur qui satisfait aux exigences suivantes:

  • Votre propre mécanisme d'autorisation doit protéger le point de terminaison.

  • Le point de terminaison doit générer un nouveau jeton à chaque fois, comme suit:

    • Chaque utilisateur reçoit un jeton unique.
    • Les jetons n'expirent pas immédiatement.

Créer un compte de service et une clé de signature

Pour créer un compte de service Google et une clé de signature, procédez comme suit:

  1. Dans Google Cloud, ouvrez la page "Identifiants".
    Identifiants
  2. Cliquez sur Créer des identifiants > Compte de service :
  3. Sous Détails du compte de service, saisissez un nom pour le nouveau compte, puis cliquez sur Créer :
  4. Sur la page "Autorisations de compte de service", accédez à la liste déroulante Sélectionnez un rôle. Sélectionnez Comptes de service > Créateur de jetons du compte de service, puis cliquez sur Continuer.
  5. Sur la page Autoriser les utilisateurs à accéder à ce compte de service, cliquez sur "OK".
  6. Sur la page Identifiants accédez à la section "Comptes de service", puis cliquez sur le nom du compte que vous venez de créer.
  7. Faites défiler la page Détails du compte de service vers le bas jusqu'à la section "Clés". sélectionnez Ajouter une clé > Créer une clé
  8. Sélectionnez le type de clé JSON, puis cliquez sur Créer.

    Un fichier JSON contenant la clé privée est alors téléchargé sur votre ordinateur. Magasin le fichier de clé JSON téléchargé dans un emplacement sécurisé.

Créer des jetons sur votre serveur

Pour créer des jetons (JWT) sur votre serveur, utilisez les jetons JWT standard bibliothèques et le fichier JSON que vous avez téléchargé de manière sécurisée depuis votre nouveau compte de service.

Créer des jetons sur votre ordinateur de développement

Pour générer des jetons JWT sur votre ordinateur de développement, utilisez le code suivant : Commande oauth2l:

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

La spécification d'un emplacement de cache vide à l'aide de l'option --cache est nécessaire pour pour garantir qu'un jeton différent est généré à chaque fois. N'oubliez pas de couper que vous obtenez. Si vous ajoutez des espaces ou des sauts de ligne superflus, l'API refuser le jeton.

Signer le jeton

Vous devez utiliser l'algorithme RS256 et les revendications suivantes pour signer le jeton JWT:

  • iss : adresse e-mail du compte de service.
  • sub : adresse e-mail du compte de service.
  • iat : heure de l'epoch Unix lors de la génération du jeton, en secondes.
  • expiat + 3600 (1 heure). L'heure de l'epoch Unix lorsque le jeton expire, en quelques secondes.
  • aud : audience. Il doit être défini sur https://arcore.googleapis.com/

Les revendications non standards ne sont pas obligatoires dans la charge utile JWT, bien que vous puissiez trouver La revendication uid est utile pour identifier l'utilisateur correspondant.

Si vous utilisez une approche différente pour générer vos jetons JWT, telle que l'utilisation d'un jeton dans un environnement géré par Google, veillez à signer vos jetons JWT avec les revendications dans cette section. Surtout, assurez-vous que l'audience est correcte.

Transmettre le jeton dans la session ARCore

  1. Assurez-vous que la stratégie d'authentification iOS est définie sur AuthenticationToken (Jeton d'authentification). Dans Unity, accédez à Edit (Modifier) > Paramètres du projet > Gestion des plug-ins XR > Extensions ARCore. Dans la liste déroulante iOS Authentication Strategy (Stratégie d'authentification iOS) sélectionnez l'option Authentication Token (Jeton d'authentification).
  2. Lorsque vous obtenez un jeton, transmettez-le à votre session ARCore à l'aide de ARAnchorManager.SetAuthToken():

    // Designate the token to authorize ARCore API calls
    // on the iOS platform. This should be called each time the application's token is refreshed.
    ARAnchorManager.SetAuthToken(authToken);
    

Votre application est maintenant configurée pour utiliser l'authentification sans clé.

Notez les points suivants lorsque vous transmettez un jeton à la session:

  • Si vous avez utilisé une clé API pour créer la session, ARCore ignorera la et consignez une erreur.

    Si vous n'avez plus besoin de la clé API, supprimez-la dans la section Cloud Console, puis supprimez-la l'application.

  • ARCore ignore les jetons qui contiennent des espaces ou des caractères spéciaux.

  • Les jetons expirent généralement au bout d'une heure. S'il est possible que votre peut expirer pendant son utilisation, en obtenir un nouveau et le transmettre à l'API.

Clé API

  1. Dans Google Cloud, ouvrez la page "Identifiants".
    Identifiants
  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API dans le menu.
    : La boîte de dialogue "Clé API créée" affiche la chaîne de la clé que vous venez de créer.
  3. Dans Unity, accédez à Edit (Modifier) > Paramètres du projet > Gestion des plug-ins XR > Extensions ARCore. Pour chaque plate-forme cible (Android, iOS), dans ses Dans le menu déroulant Authentication Strategy (Stratégie d'authentification), sélectionnez l'option API Key (Clé API). Ensuite, insérez votre clé API dans les champs correspondants.

  4. Consultez la documentation sur les restrictions de clés API. pour sécuriser votre clé API.

Votre application est maintenant configurée pour utiliser des clés API.

Étape suivante

Une fois l'autorisation configurée, accédez aux fonctionnalités ARCore suivantes qui utilisent comme suit: