Autorisation

Les applications autorisent les appels vers l'API client d'enregistrement sans contact à l'aide d'OAuth. Ce document décrit le processus d'autorisation de l'API des fournisseurs EMM (Enterprise Mobility Management, gestion de la mobilité en entreprise) et des développeurs informatiques d'entreprise. Après avoir lu ce document, vous saurez comment autoriser les requêtes d'API dans votre application et expliquer les exigences concernant les comptes aux utilisateurs de votre application.

Guide de démarrage rapide pour les autorisations

  • Configurer un projet Google Cloud Platform avec l'API d'enregistrement sans contact et les codes secrets du client OAuth, exécutez cet assistant.
  • Créez l'exemple de code de démarrage rapide pour Java, .NET ou Python. Utilisez les bibliothèques clientes des API de Google pour prendre en charge d'autres langues.

Présentation

Relation entre l'appareil et les ressources client

  1. Un ou plusieurs administrateurs informatiques sont des utilisateurs d'un compte client avec enregistrement sans contact.
  2. Les administrateurs informatiques utilisent un compte Google pour s'authentifier.
  3. Les requêtes API transmettent un jeton OAuth2 pour autoriser les requêtes API au nom d'un administrateur informatique.

Comptes client

Les configurations, appareils et utilisateurs (administrateurs informatiques) d'une organisation appartiennent à un compte client Google Cloud. Un compte client est semblable à un groupe et ne correspond pas à un utilisateur individuel. Un revendeur configure un client la première fois que l'entreprise achète des appareils pour l'enregistrement sans contact. Les administrateurs informatiques gèrent d'autres utilisateurs dans leur entreprise à l'aide du portail d'enregistrement sans contact.

L'API identifie les comptes à l'aide de numéros client numériques. Vous transmettez le numéro client dans le chemin de l'URL lors de l'appel de méthodes API. Votre application doit obtenir l'ID client d'un utilisateur avant d'appeler des méthodes d'API.

L'exemple ci-dessous montre comment obtenir les comptes client de l'utilisateur que autorise l'appel d'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']))

Dans votre application, vous devrez parcourir les pages de résultats des comptes, car l'exemple ci-dessus n'affiche que les 100 premiers comptes. Pour savoir comment procéder, consultez Résultats paginés :

Une entreprise dispose généralement d'un seul compte client, mais les grandes organisations peuvent utiliser des comptes client distincts pour chaque division. Comme un administrateur informatique peut être membre de différents comptes client, votre application doit aider les utilisateurs à trouver et utiliser de nouveaux comptes client. Dans votre application, ajoutez un libellé à chaque compte client à l'aide du companyName.

Utilisateurs

Les administrateurs informatiques autorisent les requêtes API que votre application envoie en leur nom. À les requêtes API autorisées, l'utilisateur de votre application doit procéder comme suit:

  1. Associer un compte Google à son adresse e-mail.
  2. Rejoignez un compte client avec la même adresse e-mail.
  3. Acceptez les conditions d'utilisation (CGU) du client pour l'enregistrement sans contact.

Pour faciliter la configuration des utilisateurs de votre application, réutilisez nos conseils destinés aux administrateurs informatiques dans Obtenir commencé et Associer un compte Google dans votre propre documentation.

Gestion des utilisateurs

Les administrateurs informatiques gèrent les utilisateurs de leurs comptes client dans l'enregistrement sans contact d'inscription. Les utilisateurs d'un compte client ont un rôle : Propriétaire ou Administrateur. Les deux rôles ont le même accès à l'API client, mais un propriétaire peut gérer d'autres utilisateurs.

Acceptation des conditions d'utilisation

Pour que les utilisateurs de votre application puissent autoriser les appels d'API, ils doivent accepter les dernières Conditions d'utilisation Cela se produit lorsque les administrateurs informatiques utilisent l'enregistrement sans contact pour la première fois ou lorsque nous mettre à jour les conditions d'utilisation. Lorsqu'un utilisateur n'a pas accepté les dernières conditions d'utilisation, l'API renvoie une Code d'état HTTP 403 Forbidden et le corps de la réponse contiennent un TosError

Le portail invite automatiquement les utilisateurs à accepter les dernières conditions d'utilisation lorsqu'ils signent po. Pour connaître les approches que votre application pourrait inclure, consultez Gérer les conditions d'utilisation d'assistance dans le guide d'intégration EMM.

Ajouter une autorisation à votre application

Chaque requête envoyée par votre application à l'API client doit inclure un jeton d'autorisation. Celui-ci permet également d'identifier votre application auprès de Google. En effet, l'API client accède aux données de l'utilisateur, l'autorisation doit provenir du propriétaire données. Votre application délègue l'autorisation de l'API aux administrateurs informatiques à l'aide du protocole OAuth 2.0.

Instructions

Nous fournissons des guides de démarrage rapide pour les applications Java, .NET et Python. Si vous utilisez une autre langue, suivez les deux les étapes ci-dessous pour configurer les autorisations l'application.

Pour en savoir plus sur l'autorisation, consultez Utilisation d'OAuth 2.0 pour accéder à API.

Champs d'application des autorisations

Utiliser le champ d'application des autorisations de l'API https://www.googleapis.com/auth/androidworkzerotouchemm dans votre application pour demander un jeton d'accès OAuth 2.0.

Un paramètre de champ d'application contrôle l'ensemble des ressources et des opérations auxquelles un accès qui autorise les appels. Les jetons d'accès ne sont valides que pour l'ensemble des opérations. et les ressources décrites dans le champ d'application de la requête de jeton. L'API couvre tous méthodes et ressources associées au champ d'application de l'enregistrement sans contact unique affiché ci-dessus.

Pour obtenir un exemple de champ d'application d'enregistrement sans contact utilisé avec la bibliothèque cliente des API Google, consultez les guides de démarrage rapide pour Java, .NET et Python. Pour en savoir plus sur l'utilisation des champs d'application des API Google, consultez la page Utiliser OAuth 2.0 pour accéder aux API Google

Bonnes pratiques pour les clés API

Lorsque vous utilisez des clés API dans vos applications, veillez à les sécuriser. L'exposition publique de vos identifiants peut compromettre la sécurité de votre compte, ce qui risque d'entraîner des frais inattendus. Pour conserver vos clés API, suivez ces bonnes pratiques:

N'intégrez pas de clés API directement dans le code
Les clés API intégrées dans le code peuvent être exposées par erreur publiques, par exemple si vous oubliez de supprimer les clés du code partager. Au lieu d'intégrer vos clés API dans vos applications, stockez-les dans des variables d'environnement ou dans des fichiers situés en dehors de la source arbre.
Ne stockez pas de clés API dans des fichiers au sein de l'arborescence source de votre application.
Si vous stockez les clés API dans des fichiers, conservez ces fichiers en dehors de l'environnement arborescence source pour vous assurer que vos clés ne se retrouvent pas dans le contrôle du code source du système d'exploitation. C'est particulièrement important si vous utilisez un système de gestion de code source public tel que GitHub.
Ne limitez vos clés API qu'aux adresses IP, aux URL de provenance, et les applications mobiles qui en ont besoin
En limitant les adresses IP, les URL de provenance et les applications mobiles qui peuvent utiliser chaque clé, vous pouvez réduire l'impact d'une clé API compromise. Vous pouvez spécifier les hôtes et les applications qui peuvent utiliser chaque clé depuis la console Google APIs ; en ouvrant la page Identifiants, puis en créant une nouvelle API avec les paramètres de votre choix ou modifier les paramètres d'une API .
Supprimer les clés API inutiles
Pour réduire votre exposition aux attaques, supprimez les clés API dont vous n'avez plus besoin.
Regénérez vos clés API régulièrement
Vous pouvez regénérer les clés API à partir de la console Google APIs en ouvrant la Page Identifiants, sélectionnez une clé API, puis cliquez sur Regénérer associée à chaque clé. Ensuite, mettez à jour vos applications pour qu'elles utilisent le nouveau clés. Vos anciennes clés continueront de fonctionner pendant 24 heures après leur génération clés de remplacement.
Vérifier le code avant de le publier
Assurez-vous que votre code ne contient aucune clé API ni aucune autre clé privée avant de rendre votre code public.