Autorisation

LesDeveloperpeuvent utiliser l'API SDM pour afficher et gérer les appareils Google Nest au nom de user. L'API du SDM vérifie que user gère les appareils utilisés, que user a autorisé ladeveloper lecture ou l'écriture des caractéristiques de chaque appareil, et quedeveloper a été ajouté à la liste blanche pour l'accès à chaque caractéristique.

Pour utiliser l'API SDM pour la gestion des appareils, l'developer doit d'abord être autorisée par le user.

Pour un tutoriel sur le processus d'autorisation, consultez la page Autoriser un compte du guide de démarrage rapide. Device Access

Pour obtenir de l'aide sur la résolution des erreurs d'autorisation, consultez Erreurs d'autorisation.

Flux OAuth

L'API SDM utilise un flux Google OAuth à trois acteurs pour l'autorisationuser :

  • Lorsque a user souhaite autoriser a developer la gestion des appareils Nest, developer l'envoieuser au PCM, où userse connecte à son compte Google.
  • user sélectionne les autorisations à accorder à developerdans PCM.
  • Le user donne son consentement via OAuth, en accordant undeveloper Code d'autorisation.
  • La classe developer utilise le code d'autorisation pour récupérer un jeton d'accès.
  • Le developer utilise le jeton d'accès avec des appels à l'API SDM pour la gestion des appareils.

Pour en savoir plus sur Google OAuth et sa configuration, consultez Utiliser OAuth 2.0 pour accéder aux API Google.

Gestionnaire des connexions partenaires (PCM)

PCM est fourni par l'API SDM. Il s'agit d'une vue qui répertorie toutes les structures, tous les appareils et toutes les options d'accès queuser peut accorder au developer. Le userchoisit les éléments auxquels accorder l'accès pendant le processus d'autorisation et conserve le contrôle de cet accès.

Les options sélectionnées dans PCM correspondent à des groupes de caractéristiques, qui sont des ensembles de caractéristiques auxquels developer aura accès. Certains groupes de caractéristiques sont associés, selon le type d'intégration quedeveloper propose au user. userdoit accorder des autorisations à ces groupes de caractéristiques associés pour activer cette intégration. Sinon, l'utilisateur peut accorder des autorisations pour des groupes de caractéristiques individuels et dissociés, selon les besoins.

Activer le format PCM

Pour activer la vue PCM pour un user, remplacez le point de terminaison OAuth 2.0 standard de l'API Google par le nouveau point de terminaison OAuth pour la demande d'autorisation:

https://nestservices.google.com/partnerconnections/project-id/auth

Utilisez les paramètres suivants dans l'URL:

Paramètre Description
redirect_uri URI à rediriger user après l'autorisation.
client_id ID client OAuth 2.0 de votre projet Google Cloud. Assurez-vous qu'il s'agit de celui associé à votre Project ID. Notez qu'un ID client OAuth doit être valide et unique à project, et ne peut pas être partagé avec d'autres project.
access_type Valeur à utiliser: offline
prompt Valeur à utiliser: consent
response_type Valeur à utiliser: code
Un code d'autorisation doit être renvoyé.
scope Valeur à utiliser: https://www.googleapis.com/auth/sdm.service
Le champ d'application de l'API SDM.
state Facultatif. Valeur opaque utilisée par le client developer pour conserver l'état entre la requête et le rappel.
linking_token Jeton d'association obtenu à partir de la commande GetToken.

Exemple d'URL PCM:

https://nestservices.google.com/partnerconnections/
  2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
  redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
  client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
  access_type=offline&
  prompt=consent&
  response_type=code&
  scope=https://www.googleapis.com/auth/sdm.service

Une fois l'autorisation accordée user , un code d'autorisation est renvoyé en tant que paramètre code dans l'URI de redirection. Utilisez ce code pour obtenir un jeton d'accès.

Pour obtenir de l'aide concernant les erreurs rencontrées lors de l'accès à PCM, consultez la documentation de référence sur les erreurs PCM (Partner Connections Manager).

Ajouter le système PCM à votre application

Dans votre application, ajoutez la vue PCM à l'aide de l'URL suivante:

https://nestservices.google.com/partnerconnections

Lorsque user est connecté, cette page affiche toutes lesDevice Access developerassociées, ainsi qu'une liste de toutes les structures et appareils avec les boutons permettant d'activer et de révoquer les autorisations. user peut également déconnecter une connexion partenaire à partir de cette page pour chaque partenaire.

Applications non validées

L'API SDM utilise un champ d'application limité, ce qui signifie que toutes les applications qui utilisent ce champ d'application pendant l'autorisation seront "non validées", sauf si la validation de l'API OAuth est terminée. Lorsque vous l'utilisez Device Access à des fins personnelles, la validation de l'API OAuth n'est pas requise.

Il est possible que l'écran "Google n'a pas validé cette application" s'affiche pendant le processus d'autorisation, qui s'affiche si le champ d'application sdm.service n'est pas configuré sur votre écran d'autorisation OAuth dans Google Cloud. Vous pouvez contourner cet écran en cliquant sur l'option Avancé, puis sur Accéder au nom du projet (non sécurisé).

Pour en savoir plus, consultez la section Écran d'application non validé.

Jetons d'accès

Tous les appels à l'API SDM pour gérer les structures et les appareils autorisés doivent utiliser le jeton d'accès unique accordé au developer par leuser lors de l'autorisation. Les jetons d'accès ont une courte durée de vie et doivent être actualisés régulièrement pour garantir un accès continu.

Si a user révoque developer par la suite l'accès à une structure ou à un appareil, le jeton d'accès expire immédiatement et ne peut pas être actualisé, etdeveloper ne pourra plus appeler l'API SDM pour ce compte user.

Révoquer l'autorisation du compte

Il existe plusieurs façons d'annuler l'autorisation d'un compte Google. La méthode privilégiée consiste à modifier les autorisations du compte à l'aide du Gestionnaire des connexions partenaires (PCM). Pour en savoir plus, consultez la section Modifier les autorisations du compte. Un jeton d'accès peut également être révoqué par les méthodes suivantes:

  1. L'utilisateur peut révoquer son abonnement sur la page https://myaccount.google.com/permissions.

  2. Le développeur peut transmettre le jeton d'accès au point de terminaison https://oauth2.googleapis.com/revoke. Pour en savoir plus sur la révocation de jetons et l'authentification Google OAuth, consultez Révoquer un jeton.

WebViews intégrés

Une nouvelle règle de navigateur sécurisé interdit les requêtes OAuth Google dans les bibliothèques de navigateurs intégrées couramment appelées WebViews intégrées. Toutes les WebViews intégrées seront bloquées. Les bibliothèques WebView intégrées posent problème, car elles permettent à un développeur malveillant d'intercepter et de modifier les communications entre Google et ses utilisateurs. Les WebViews intégrés affectent la sécurité du compte, mais ils peuvent également affecter la facilité d'utilisation de votre application.

Si vous êtes concerné par cette règle, reportez-vous à l'article d'assistance Modifications de sécurité à venir du point de terminaison d'autorisation OAuth 2.0 de Google dans les WebViews intégrés.