Utiliser l'API ARCore sur Google Cloud

Sélectionnez une plate-forme:

Les fonctionnalités ARCore telles que l'API Geospatial et Cloud Anchors 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 d'API ARCore hébergé sur Google Cloud.

Créez un projet Google Cloud ou utilisez un projet existant

Si vous avez déjà un projet, 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 iOS 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:

  • L'autorisation sans clé utilise un jeton signé pour contrôler l'accès à l'API. Cette méthode 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 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 par jeton pour communiquer avec l'API ARCore.

Sans clé

ARCore accepte 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.

Afin de 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, comme suit:

    • Chaque utilisateur obtient 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 et une clé de signature Google, 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, recherchez la section "Comptes de service", puis cliquez sur le nom du compte que vous venez de créer.
  7. 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é.
  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. 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 à partir de 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, exécutez la commande oauth2l suivante:

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 garantir la génération d'un jeton différent à chaque fois. Veillez à couper la chaîne obtenue. Des espaces ou des caractères de retour à la ligne supplémentaires entraîneront le refus du jeton par l'API.

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 en secondes.
  • expiat + 3600 (1 heure). Heure de l'epoch Unix à laquelle le jeton expire, en secondes.
  • aud : audience. Il doit être défini sur https://arcore.googleapis.com/.

Les revendications non standards ne sont pas requises dans la charge utile JWT, bien que la revendication uid puisse vous aider à identifier l'utilisateur correspondant.

Si vous utilisez une approche différente pour générer vos jetons JWT, par exemple en utilisant une API Google dans un environnement géré par Google, veillez à les signer avec les revendications décrites dans cette section. Avant tout, assurez-vous que l'audience est la bonne.

Transmettre le jeton dans la session ARCore

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

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

  • Si vous avez utilisé une clé API pour créer la session, ARCore ignorera le jeton et générera une erreur.

    Si vous n'avez plus besoin de la clé API, supprimez-la dans la Google Developers Console, puis supprimez-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. S'il est possible que votre jeton expire pendant son utilisation, obtenez un nouveau jeton et transmettez-le à 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. Consultez la documentation sur les restrictions de clé API pour sécuriser votre clé API.

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

Étapes suivantes

Une fois l'autorisation configurée, vérifiez les fonctionnalités ARCore suivantes qui l'utilisent: