Les fonctionnalités ARCore telles que l'API Geospatial et les ancrages cloud utilisent l'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 de l'API ARCore hébergé sur Google Cloud.
Créez un projet Google Cloud ou utilisez-en un existant.
Si vous avez déjà un projet, sélectionnez-le.
Accéder au sélecteur de projet
Si vous n'avez pas encore de projet Google Cloud, créez-en un.
Activer l'API ARCore
Pour utiliser l'API ARCore, vous devez l'activer dans votre projet.
Configurer une méthode d'autorisation
Une application Unity peut communiquer avec l'API ARCore à l'aide de deux méthodes d'autorisation différentes : l'autorisation sans clé, qui est la méthode recommandée, et l'autorisation par clé API :
Sur Android, l'autorisation sans clé utilise une combinaison du nom de package de l'application et de 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. Cette méthode nécessite un serveur qui vous appartient pour signer les jetons et contrôler l'accès à l'API.
Une clé API est une chaîne qui identifie un projet Google Cloud. Les clés API ne sont généralement pas considérées comme sécurisées, car elles sont généralement accessibles aux clients. Envisagez d'utiliser l'autorisation sans clé pour communiquer avec l'API ARCore.
Sans clé
Pour autoriser votre application à l'aide de l'authentification sans clé, créez des ID client OAuth 2.0.
Déterminer les empreintes de clé de signature
Un ID client OAuth 2.0 utilise l'empreinte de la clé de signature de votre application pour l'identifier.
Obtenir l'empreinte de votre signature de débogage
Lorsque vous exécutez ou déboguez 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.keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
L'utilitaire keytool vous invite à saisir un mot de passe pour le keystore. Le mot de passe par défaut du keystore de débogage est android. L'utilitaire keytool imprime ensuite l'empreinte numérique 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 digitale.
keytool -list -v -alias your-key-name -keystore path-to-production-keystoreL'utilitaire keytool imprime 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 à partir du service Signature d'application Play
Lorsque vous utilisez la 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 de signature.
- 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.
- Utilisez l'empreinte du certificat SHA-1.
Créer des ID client OAuth 2.0
Pour chaque clé de signature applicable des étapes précédentes, créez un ID client OAuth 2.0 dans les identifiants de votre projet Google Cloud.
Dans Google Cloud, ouvrez la page "Identifiants".
Cliquez sur Créer des identifiants, puis sélectionnez ID client OAuth dans le menu.
Renseignez les champs obligatoires comme suit :
- Type d'application : sélectionnez Android.
- Nom du package : utilisez le nom du package tel qu'il est déclaré dans votre fichier AndroidManifest.xml.
- Empreinte du certificat SHA-1 : utilisez une empreinte obtenue lors des étapes précédentes.
Appuyez sur Créer.
Inclure les bibliothèques requises
- Incluez
com.google.android.gms:play-services-auth:16+dans les dépendances de votre application. Si vous utilisez la minification du code, ajoutez-la au fichier
build.gradlede votre application :buildTypes { release { ... proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }Ajoutez ce qui suit au fichier
proguard-rules.prode 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é.
Sans clé
ARCore est compatible avec l'autorisation des appels d'API dans iOS à l'aide d'un jeton Web JSON. Le jeton doit être signé par un compte de service Google.
Pour générer des jetons pour iOS, vous devez disposer d'un point de terminaison sur votre serveur qui répond 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, de sorte que :
- 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 :
- Dans Google Cloud, ouvrez la page "Identifiants".
Identifiants - Cliquez sur Créer des identifiants > Compte de service.
- Sous Détails du compte de service, saisissez un nom pour le nouveau compte, puis cliquez sur Créer.
- Sur la page "Autorisations de compte de service", accédez au menu déroulant Sélectionner un rôle. Sélectionnez Comptes de service > Créateur de jetons de compte de service, puis cliquez sur "Continuer".
- Sur la page Autoriser les utilisateurs à accéder à ce compte de service, cliquez sur OK.
- Sur la page Identifiants, recherchez la section "Comptes de service", puis cliquez sur le nom du compte que vous venez de créer.
- Sur la page Détails du compte de service, faites défiler la page jusqu'à la section "Clés", puis sélectionnez Ajouter une clé > Créer une clé.
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. Stockez 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 bibliothèques JWT standards 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 JWT sur votre ordinateur de développement, utilisez la commande oauth2l suivante :
oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"
Il est nécessaire de spécifier un emplacement de cache vide à l'aide de l'option --cache pour s'assurer qu'un jeton différent est généré à chaque fois. Veillez à supprimer les espaces de début et de fin de la chaîne obtenue. Si le jeton contient des espaces ou des caractères de retour à la ligne supplémentaires, l'API le refusera.
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 epoch Unix à laquelle le jeton a été généré, en secondes.exp–iat+3600(1 heure). Heure epoch Unix à laquelle le jeton expire, en secondes.aud: l'audience. Il doit être défini surhttps://arcore.googleapis.com/.
Les revendications non standards ne sont pas requises dans la charge utile JWT, mais la revendication uid peut être utile pour identifier l'utilisateur correspondant.
Si vous utilisez une autre approche pour générer vos jetons JWT, par exemple en utilisant une API Google dans un environnement géré par Google, assurez-vous de signer vos jetons JWT avec les revendications de cette section. Avant tout, assurez-vous que l'audience est correcte.
Transmettre le jeton dans la session ARCore
- Assurez-vous que la stratégie d'authentification iOS est définie sur AuthenticationToken. Dans Unity, accédez à Edit > Project Settings > XR Plug-in Management > ARCore Extensions (Modifier > Paramètres du projet > Gestion des plug-ins XR > Extensions ARCore). Dans le menu déroulant Stratégie d'authentification iOS, sélectionnez l'option Jeton d'authentification.
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 le jeton et consignera une erreur.
Si vous n'avez plus besoin de la clé API, supprimez-la dans la Google Developers Console et retirez-la de votre application.
ARCore ignore les jetons contenant des espaces ou des caractères spéciaux.
Les jetons expirent généralement au bout d'une heure. Si votre jeton risque d'expirer pendant son utilisation, obtenez-en un nouveau et transmettez-le à l'API.
Clé API
- Dans Google Cloud, ouvrez la page "Identifiants".
Identifiants - 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 correspondant à la clé que vous venez de créer. Dans Unity, accédez à Edit > Project Settings > XR Plug-in Management > ARCore Extensions (Modifier > Paramètres du projet > Gestion des plug-ins XR > Extensions ARCore). Pour chaque plate-forme cible (Android, iOS), 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.
- 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, découvrez les fonctionnalités ARCore suivantes qui l'utilisent :