Las apps autorizan las llamadas a la API de cliente de inscripción automática. con OAuth. En este documento, se explica la autorización de la API para proveedores de administración de movilidad empresarial (EMM) y desarrolladores de TI empresarial. Después de leer este documento, sabrás cómo autorizar solicitudes a la API en tu app y explícales los requisitos de la cuenta a los usuarios de ella.
Guía de inicio rápido para la autorización
- Para configurar un proyecto de Google Cloud con la API de inscripción automática y los secretos del cliente de OAuth, ejecuta este asistente.
- Compila el código de muestra de la guía de inicio rápido para Java, .NET o Python. Usa las bibliotecas cliente de la API de Google para admitir otros idiomas.
Descripción general
- Uno o más administradores de TI son usuarios de una cuenta de cliente con inscripción automática.
- Los administradores de TI usan una Cuenta de Google para autenticarse.
- Las solicitudes a la API pasan un token OAuth2 para autorizar solicitudes a la API en nombre de un Administrador de TI.
Cuentas de clientes
La configuración, los dispositivos y los usuarios (administradores de TI) de una organización pertenecen a un cuenta de cliente. Una cuenta de cliente es similar a un grupo y no es un usuario individual. Un revendedor configura un cliente cuando la organización por primera vez compra dispositivos para la inscripción automática. Los administradores de TI gestionan a otros usuarios a su organización a través del portal de inscripción automática.
La API utiliza ID de cliente numéricos para identificar las cuentas. Debes pasar el ID de cliente. como parte de la ruta de URL cuando se llama a los métodos de la API. Tu app debe obtener el ID de cliente de un usuario antes de llamar a cualquier método de la API.
El siguiente ejemplo muestra cómo obtener las cuentas de cliente para el usuario que autoriza la llamada a la API:
Java
AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list(); accountRequest.setPageSize(100); CustomerListCustomersResponse accountResponse = accountRequest.execute(); List<Company> customers = accountResponse.getCustomers(); if (customers == null || customers.isEmpty()) { // No accounts found for the user. Confirm the Google Account // that authorizes the request can access the zero-touch portal. System.out.println("No zero-touch enrollment account found."); } else { // Print the customers in this page. for (Company customer : customers) { System.out.format("%s\tcustomers/%d\n", customer.getCompanyName(), customer.getCompanyId()); } }
.NET
CustomersResource.ListRequest accountRequest = service.Customers.List(); accountRequest.PageSize = 100; CustomerListCustomersResponse accountResponse = accountRequest.Execute(); IList<Company> customers = accountResponse.Customers ?? new List<Company>(); if (customers.Count == 0) { // No accounts found for the user. Confirm the Google Account // that authorizes the request can access the zero-touch portal. Console.WriteLine("No zero-touch enrollment account found."); } foreach (Company customer in customers) { Console.WriteLine("{0}\tcustomers/{1}", customer.CompanyName, customer.CompanyId); }
Python
response = service.customers().list(pageSize=100).execute() if 'customers' not in response: # No accounts found for the user. Confirm the Google Account # that authorizes the request can access the zero-touch portal. print('No zero-touch enrollment account found.') response['customers'] = [] for customer in response['customers']: print('{0}\tcustomers/{1}'.format( customer['companyName'], customer['companyId']))
En tu app, deberás navegar por las páginas de resultados de la cuenta ejemplo anterior solo imprime las primeras 100 cuentas. Para obtener información sobre cómo hacerlo, lee Resultados paginados:
Una organización suele tener una cuenta de cliente, pero organizaciones más grandes
podría usar cuentas de clientes independientes para cada división. Debido a que un administrador de TI puede
como miembro de diferentes cuentas de clientes, tu app debe ayudar a los usuarios a encontrar
utilizar cuentas de clientes nuevos. En tu app, etiqueta cada cuenta de cliente con el
companyName
.
Usuarios
Los administradores de TI autorizan las solicitudes a la API que envía tu app en su nombre. Para autorizar solicitudes a la API, el usuario de tu app debe hacer lo siguiente:
- Asociar una Cuenta de Google a su dirección de correo electrónico
- Únete a una cuenta de cliente con la misma dirección de correo electrónico.
- Acepta las Condiciones del Servicio (CS) para clientes de la inscripción automática.
Para ayudar a los usuarios a configurar tu app, reutiliza nuestra guía para administradores de TI en Obtener comenzar y asociar una Cuenta de Google en tu propia documentación.
Administración de usuarios
Los administradores de TI administran los usuarios de sus cuentas de cliente en el portal de inscripción automática. Los usuarios de una cuenta de cliente tienen un rol Propietario o Administrador Ambas funciones tienen el mismo acceso a la API del cliente, pero un propietario puede administrar a otros usuarios.
Aceptación de las Condiciones del Servicio
Antes de que los usuarios de tu app puedan autorizar llamadas a la API, deben aceptar las Condiciones del Servicio más recientes. Esto sucede cuando los administradores de TI usan la inscripción automática por primera vez o cuando
actualizar las Condiciones del Servicio Si un usuario no ha aceptado las últimas Condiciones del Servicio, la API devuelve un
El código de estado HTTP 403 Forbidden
y el cuerpo de la respuesta contiene un
TosError
El portal les solicita automáticamente a los usuarios que acepten las Condiciones del Servicio más recientes cuando las firman en el que te etiquetaron. Para ver los enfoques sugeridos que puede incluir tu app, consulta Cómo administrar las condiciones del Service en la guía de integración de EMM.
Agrega autorización a tu app
Cada solicitud que tu app envía a la API del cliente debe incluir una autorización token. El token también identifica tu aplicación ante Google. Debido a que el accede a los datos del usuario, la autorización debe venir del propietario de la de datos no estructurados. Tu aplicación delega la autorización de API a los administradores de TI con OAuth 2.0. protocolo.
Instrucciones
Ofrecemos guías de inicio rápido para Java, .NET y Apps de Python. Si usas otro idioma, sigue las dos opciones sigue estos pasos para configurar la autorización de tu .
Para obtener más información sobre la autorización, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Alcances de autorización
Usa el alcance de autorización de la API
https://www.googleapis.com/auth/androidworkzerotouchemm
en tu app para solicitarlo
un token de acceso de OAuth 2.0.
Un parámetro de permiso controla el conjunto de recursos y operaciones a los que un acceso que el token permita que se realicen las llamadas. Los tokens de acceso son válidos solo para el conjunto de operaciones y los recursos descritos en el alcance de la solicitud del token. La API abarca todo los métodos y recursos en los que se muestra el alcance de la inscripción automática arriba.
Para ver un ejemplo del alcance de la inscripción automática que se usa con la API de Google consulta las guías de inicio rápido de Java, .NET y Python. Para obtener más información sobre el uso de los permisos de la API de Google, consulta Usa OAuth 2.0 para acceder a las APIs de Google.
Prácticas recomendadas para las claves de API
Cuando usas claves de API en tus aplicaciones, ten cuidado de mantenerlas seguras. Si expones tus credenciales en público, tu cuenta puede quedar vulneradas, lo que podría generar cargos inesperados en tu cuenta. Para mantener tus claves de API seguras, sigue estas prácticas recomendadas:
- No incorpores claves de API directamente en el código Las claves de API de
- incorporadas en el código pueden exponerse al público por accidente, por ejemplo, si te olvidas de quitar las claves del código que compartes. En lugar de incorporar tus claves de API en tus aplicaciones, almacénalas en variables de entorno o en archivos fuera del árbol de origen de tu aplicación.
- No almacenes claves de API en archivos dentro del árbol fuente de tu aplicación
- Si almacenas claves de API en archivos, mantenlos fuera del área de árbol fuente para ayudar a garantizar que tus claves no terminen en el control del código fuente en un sistema de archivos. Esto es muy importante si usas un código fuente público de administración de versiones, como GitHub.
- Restringe tus claves de API para que solo las usen las direcciones IP, URL de referencia y las apps para dispositivos móviles que los necesitan
- Restringiendo las direcciones IP, las URLs de referencia y las apps para dispositivos móviles que pueden cada una de ellas, puedes reducir el impacto de una clave de API comprometida. Puedes especificar los hosts y las apps que pueden usar cada clave de la Consola de APIs de Google abriendo la página Credenciales y, luego, creando una API nueva clave con la configuración que desees, o bien editar la configuración de una API .
- Borra las claves de API innecesarias
- Para minimizar tu exposición a los ataques, borra las claves de API que no sepas una necesidad mayor.
- Cómo volver a generar tus claves de API periódicamente
- Para regenerar las claves de API desde la Consola de APIs de Google, abre la Página de credenciales, selecciona una clave de API y haz clic en Volver a generar. clave para cada clave. Luego, actualiza tus aplicaciones para que usen las claves recién generadas. Las claves anteriores continuarán funcionando durante 24 horas después de que generes las claves de reemplazo.
- Revisa tu código antes de lanzarlo de forma pública
- Asegúrate de que el código no contenga claves de API ni ninguna otra clave privada información antes de publicar tu código.