atributos de ARCore, como Geospatial API y Cloud Anchors usan la API de ARCore alojada en Google Cloud. Cuando usas estas funciones, tu aplicación usa credenciales para acceder al servicio de la API de ARCore.
En esta guía de inicio rápido, se describe cómo configurar tu aplicación para que pueda comunicarse con el servicio de la API de ARCore alojado en Google Cloud.
Crea un proyecto de Google Cloud nuevo o usa uno existente
Si ya tienes un proyecto, selecciónalo.
Si no tienes un proyecto de Google Cloud existente, crea uno.
Habilita la API de ARCore
Para usar la API de ARCore, debes habilitarla en tu proyecto.
Configura un método de autorización
Una aplicación para iOS puede comunicarse con la API de ARCore mediante dos métodos de autorización: la autorización sin clave, que es la el método recomendado y la autorización de la clave de API:
- La autorización sin clave usa un token firmado para controlar el acceso a la API. Esta requiere un servidor de tu propiedad para firmar tokens y controlar el acceso a la API.
- Una clave de API es una cadena que identifica un proyecto de Google Cloud. Las claves de API son no suelen considerarse seguras, ya que suelen ser accesibles para los clientes. Considera usar la autorización de token para comunicarte con la API de ARCore.
Sin llave
ARCore admite la autorización de llamadas a la API en iOS usando un archivo (JSON Web token). El token debe tener la firma de un Cuenta de servicio.
Si quieres generar tokens para iOS, debes tener un extremo en tu servidor que cumpla con los siguientes requisitos:
Tu propio mecanismo de autorización debe proteger el extremo.
El extremo debe generar un token nuevo cada vez para que ocurra lo siguiente:
- Cada usuario obtiene un token único.
- Los tokens no vencen de inmediato.
Crea una cuenta de servicio y una clave de firma
Sigue estos pasos para crear una cuenta de servicio de Google y una clave de firma:
- En Google Cloud, abre la página Credenciales.
Credenciales - Haz clic en Crear credenciales > Cuenta de servicio
- En Detalles de la cuenta de servicio, escribe un nombre para la cuenta nueva y, luego, haz clic en Crear.
- En la página Permisos de la cuenta de servicio, ve al menú desplegable Selecciona un rol. Selecciona Cuentas de servicio > Creador de tokens de cuenta de servicio y, luego, haz clic en Continuar.
- En la página Otorgar a los usuarios acceso a esta cuenta de servicio, haz clic en Listo.
- En Credenciales, buscar la sección Cuentas de servicio y hacer clic en el nombre de la cuenta que acabas de crear.
- En la página Detalles de la cuenta de servicio, desplázate hacia abajo hasta la sección Claves y selecciona Agregar clave > Crea una clave nueva.
Selecciona JSON como el tipo de clave y haz clic en Crear.
Se descargará a tu máquina un archivo JSON que contiene la clave privada. Tienda el archivo de claves JSON descargado en una ubicación segura.
Crea tokens en tu servidor
Para crear nuevos tokens (JWT) en tu servidor, utiliza el token JWT estándar bibliotecas y el archivo JSON que descargaste de forma segura de tu nueva cuenta de servicio.
Crea tokens en tu máquina de desarrollo
Para generar JWT en tu máquina de desarrollo, usa el siguiente comando:
Comando oauth2l
:
oauth2l fetch --cache "" --jwt --json $KEYFILE --audience "https://arcore.googleapis.com/"
Es necesario especificar una ubicación de caché vacía con la marca --cache
para lo siguiente:
asegurarse de que se produzca un token diferente cada vez. Asegúrate de cortar
cadena resultante. Los espacios adicionales o los caracteres de línea nueva provocarán que la API
rechazar el token.
Firma el token
Debes usar el algoritmo RS256
y las siguientes reclamaciones para firmar el JWT:
iss
: Es la dirección de correo electrónico de la cuenta de servicio.sub
: Es la dirección de correo electrónico de la cuenta de servicio.iat
: Es el tiempo Unix en el que se generó el token, en segundos.exp
:iat
+3600
(1 hora) El tiempo Unix cuando vence el token en segundos.aud
: Es el público. Se debe configurar enhttps://arcore.googleapis.com/
No se requieren reclamaciones no estándar en la carga útil de JWT, aunque puedes encontrar la
La reclamación de uid
es útil para identificar al usuario correspondiente.
Si usas un enfoque diferente para generar tus JWT, como un en un entorno administrado por Google, asegúrate de firmar tus JWT con las reclamaciones en esta sección. Sobre todo, asegúrate de que el público sea correcto.
Pasa el token en la sesión de ARCore
Crear una sesión con
GARSession#sessionWithError:
NSError *error = nil; GARSession *garSession = [GARSession sessionWithError:&error];
Cuando obtengas un token, pásalo a la sesión usando
setAuthToken:
De lo contrario, la sesión usará el token de autorización válido más reciente que pasaste. Llama a este método cada vez que actualices tu token:[garSession setAuthToken: authToken]
Tu app ahora está configurada para usar la autenticación sin clave.
Ten en cuenta lo siguiente cuando pases un token a la sesión:
Si usaste una clave de API para crear la sesión, ARCore ignorará token correcto y registrar un error.
Si ya no necesitas la clave de API, bórrala en la página de Google Developers Console y quítala de tu .
ARCore ignora los tokens que contienen espacios o caracteres especiales.
Los tokens suelen vencer después de una hora. Si existe la posibilidad de que tu cuando el token venza mientras esté en uso, obtén un token nuevo y pásalo a la API.
Clave de API
- En Google Cloud, abre la página Credenciales.
Credenciales - Haz clic en Crear credenciales y, luego, selecciona Clave de API en el menú.
El En el diálogo Se creó la clave de API, se muestra la string de la clave que acabas de crear. Cuando crees un
GARSession
, usaGARSession#sessionWithAPIKey:bundleIdentifier:error:
y, luego, inserta tu clave de API:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
- Revisa la documentación sobre las restricciones de la clave de API. para proteger tu clave de API.
La app ya está configurada para usar claves de API.
¿Qué sigue?
Con la autorización configurada, consulta las siguientes funciones de ARCore que usan de la siguiente manera: