Autorisierung

Developers können die SDM API verwenden, um Google Nest-Geräte im Namen von useranzusehen und zu verwalten. Die SDM API validiert, dass die user Geräte verwaltet werden, auf die zugegriffen wird, dass user diedeveloper Nutzereigenschaften gelesen oder geschrieben wurden und dassdeveloper der Zugriff für jede Eigenschaft auf die Zulassungsliste gesetzt wurde.

Um die SDM API für die Geräteverwaltung nutzen zu können, mussdeveloper zuerst von der userautorisiert werden.

Eine Anleitung zum Autorisierungsprozess finden Sie auf der Seite Konto autorisieren der Device Access Kurzanleitung.

Informationen zur Behebung von Autorisierungsfehlern finden Sie unter Autorisierungsfehler.

OAuth-Vorgang

Die SDM API verwendet einen dreibeinigen Google OAuth-Vorgang für dieuser -Autorisierung:

  • Wenn a user für die Verwaltung von Nest-Geräten autorisiert wird a developer , wird developer dieuser an PCM gesendet, wo sich user in seinem Google-Konto anmeldet.
  • Mit user werden die Berechtigungen ausgewählt, die für die developerin PCM gewährt werden sollen.
  • Über die user wird die Einwilligung über OAuth erteilt und es wird eindeveloper Autorisierungscode erteilt.
  • developer verwendet den Autorisierungscode, um ein Zugriffstoken abzurufen.
  • developer verwendet das Zugriffstoken mit Aufrufen der SDM API zur Geräteverwaltung.

Weitere Informationen zu Google OAuth und zum Einrichten finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.

Partner Connections Manager (PCM)

PCM wird von der SDM API bereitgestellt. In dieser Ansicht werden alle Gebäude, Geräte und Zugriffsoptionen aufgeführt, dieuser dem developergewähren kann. Mit userwird festgelegt, worauf der Zugriff während des Autorisierungsvorgangs gewährt werden soll. Die Steuerung des Zugriffs bleibt erhalten.

Die in der PCM-Auswahl ausgewählten Optionen werden Trait-Gruppen zugeordnet, bei denen es sich um Sammlungen von Eigenschaften handelt, auf die developer zugegriffen wird. Einige Merkmalsgruppen sind je nach Art der Integration, diedeveloper den useranbietet, miteinander verknüpft und usermuss diesen Gruppenberechtigungen Berechtigungen erteilen, um die Integration zu ermöglichen. Andernfalls kann der Nutzer Berechtigungen für einzelne nicht verknüpfte Eigenschaftengruppen erteilen.

PCM aktivieren

Um die PCM-Ansicht für eine userzu aktivieren, ersetzen Sie den standardmäßigen OAuth 2.0-Endpunkt der Google API durch diesen neuen OAuth-Endpunkt für die Autorisierungsanfrage:

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

Verwenden Sie folgende Parameter in der URL:

Parameter Beschreibung
redirect_uri Der URI, an den user nach erfolgreicher Autorisierung weitergeleitet werden soll.
client_id OAuth 2.0-Client-ID aus Ihrem Google Cloud-Projekt. Achte darauf, dass dies mit deiner Project ID übereinstimmt. Die OAuth-Client-ID muss für eine projectgültig und eindeutig sein und kann nicht mit anderen projects geteilt werden.
access_type Zu verwendender Wert: offline
prompt Zu verwendender Wert: consent
response_type Zu verwendender Wert: code
Es wird ein Autorisierungscode zurückgegeben.
scope Zu verwendender Wert: https://www.googleapis.com/auth/sdm.service
Der SDM API-Bereich.
state Optional. Ein intransparenter Wert, der vom developer -Client verwendet wird, um den Status zwischen der Anfrage und dem Callback aufrechtzuerhalten.
linking_token Das Verknüpfungstoken, das mit dem Befehl GetToken abgerufen wird.

Beispiel einer PCM-URL:

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

Nachdem user die Berechtigung erteilt wurde, wird ein Autorisierungscode als code-Parameter im Weiterleitungs-URI zurückgegeben. Verwenden Sie diesen Code, um ein Zugriffstoken abzurufen.

Informationen zu Fehlern, die beim Zugriff auf den PCM auftreten, finden Sie in der Referenz zum Partner Connections Manager (PCM).

PCM zu Ihrer App hinzufügen

Fügen Sie die PCM-Ansicht in Ihrer App über diese URL hinzu:

https://nestservices.google.com/partnerconnections

Wenn user angemeldet ist, werden auf dieser Seite alle verknüpftenDevice Access developers sowie eine Liste aller Gebäude und Geräte mit Ein-/Aus-Schaltflächen zum Gewähren und Widerrufen von Berechtigungen angezeigt. user kann außerdem die Verbindung eines Partners zu dieser Seite aufheben.

Nicht bestätigte Apps

Die SDM API verwendet einen eingeschränkten Bereich. Das bedeutet, dass alle Apps, die diesen Bereich während der Autorisierung verwenden, „ungeprüft“ werden, sofern die OAuth API-Überprüfung nicht abgeschlossen ist. Bei der Device Access Verwendung für private Zwecke ist die OAuth API-Überprüfung nicht erforderlich.

Möglicherweise wird während des Autorisierungsprozesses der Bildschirm „Google hat diese Anwendung nicht verifiziert“ angezeigt. Dieser Bildschirm wird angezeigt, wenn der Bereich sdm.service auf Ihrem OAuth-Zustimmungsbildschirm in Google Cloud nicht konfiguriert ist. Sie können diesen Bildschirm umgehen, indem Sie auf die Option Erweitert und dann auf Zum Projektnamen (unsicher) klicken.

Weitere Informationen finden Sie unter Bildschirm „Nicht überprüfte Apps“.

Zugriffstokens

Bei allen Aufrufen der SDM API zum Verwalten autorisierter Strukturen und Geräte muss das eindeutige Zugriffstoken verwendet werden, das developer von deruser -Autorisierung gewährt wird. Zugriffstokens sind kurzlebig und müssen regelmäßig aktualisiert werden, um den weiteren Zugriff zu gewährleisten.

Wenn a user später der Zugriff auf developer eine Struktur oder ein Gerät entzogen wird, läuft das Zugriffstoken sofort ab und kann nicht mehr aktualisiert werden.developer Außerdem ist es nicht mehr möglich, die SDM API im Namen dafür aufzurufen user.

Kontoautorisierung widerrufen

Es gibt mehrere Möglichkeiten, ein Google-Konto zu deaktivieren. Die bevorzugte Methode ist, dass der Nutzer Partner Connections Manager (PCM) verwendet, um Kontoberechtigungen zu ändern. Weitere Informationen finden Sie unter Kontoberechtigungen ändern. Ein Zugriffstoken kann auch mit den folgenden Methoden widerrufen werden:

  1. Der Nutzer kann diese Adresse unter https://myaccount.google.com/permissions widerrufen.

  2. Der Entwickler kann das Zugriffstoken an den Endpunkt https://oauth2.googleapis.com/revoke übergeben. Weitere Informationen zu Google OAuth und zum Widerrufen von Tokens finden Sie unter Token widerrufen.

Eingebettete WebViews

Eine neue Richtlinie für sichere Browser verbietet Google OAuth-Anfragen in eingebetteten Browserbibliotheken, die häufig als eingebettete WebViews bezeichnet werden. Alle eingebetteten WebViews werden blockiert. Eingebettete WebView-Bibliotheken sind problematisch, da sie es einem Entwickler ermöglichen, die Kommunikation zwischen Google und seinen Nutzern abzufangen und zu ändern. Eingebettete WebViews beeinträchtigen nicht nur die Kontosicherheit, sondern auch die Nutzerfreundlichkeit der Anwendung.

Wenn Sie von dieser Richtlinie betroffen sind, finden Sie weitere Informationen im Hilfeartikel Anstehende Sicherheitsänderungen für den OAuth 2.0-Autorisierungsendpunkt von Google in eingebetteten WebViews.