Autorisierung

Developerkönnen die SDM API verwenden, um Google Nest-Geräte im Namen von useraufzurufen und zu verwalten. Die SDM API prüft, ob die user die Geräte verwaltet, auf die zugegriffen wird, ob die user derdeveloper zum Lesen oder Schreiben der Merkmale jedes Geräts zugestimmt hat und ob diedeveloper für den Zugriff auf jedes Merkmal auf der Zulassungsliste steht.

Damit die SDM API für die Geräteverwaltung verwendet werden kann, muss diedeveloper zuerst von der userautorisiert werden.

Eine Anleitung zum Autorisierungsprozess finden Sie im Device Access -Schnellstartleitfaden auf der Seite Konto autorisieren.

Hilfe zur Fehlerbehebung bei Autorisierungsfehlern finden Sie unter Autorisierungsfehler.

OAuth-Ablauf

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

  • Wenn a user a developer zur Verwaltung von Nest-Geräten autorisieren möchte, sendet developer dieuser an PCM, wo sich userin seinem Google-Konto anmeldet.
  • Mit dem user werden Berechtigungen für das developerin PCM ausgewählt.
  • Der user erteilt die Einwilligung über OAuth und gewährt demdeveloper einen Autorisierungscode.
  • Der developer verwendet den Autorisierungscode, um ein Zugriffstoken abzurufen.
  • Die developer verwendet das Zugriffstoken für Aufrufe der SDM API zur Geräteverwaltung.

Weitere Informationen zu Google OAuth und zur Einrichtung 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, die deruser dem developergewähren kann. Der user wählt aus, worauf während der Autorisierung zugegriffen werden soll, und behält die Kontrolle über diesen Zugriff.

Die in PCM ausgewählten Optionen entsprechen Attributgruppen, die Sammlungen von Attributen sind, auf die developer Zugriff erhält. Einige Attributgruppen sind miteinander verknüpft. Das hängt davon ab, welche Art von Integration diedeveloper für die useranbietet. Die usermuss Berechtigungen für diese verknüpften Attributgruppen erteilen, um die Integration zu ermöglichen. Andernfalls kann der Nutzer Berechtigungen für einzelne, nicht verknüpfte Attributgruppen nach Bedarf erteilen.

PCM aktivieren

Wenn Sie die PCM-Ansicht für ein useraktivieren möchten, ersetzen Sie den standardmäßigen Google API OAuth 2.0-Endpunkt durch diesen neuen OAuth-Endpunkt für die Autorisierungsanfrage:

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

Verwenden Sie diese Parameter in der URL:

Parameter Beschreibung
redirect_uri Die URI, an die der user nach erfolgreicher Autorisierung weitergeleitet wird.
client_id Die OAuth 2.0-Client-ID aus Ihrem Google Cloud-Projekt. Achten Sie darauf, dass es sich um dieselbe E-Mail-Adresse handelt, die mit Ihrer Project -ID verknüpft ist. Eine OAuth-Client-ID muss gültig und eindeutig für ein projectsein und darf nicht für andere projectfreigegeben werden.
access_type Zu verwendender Wert: offline
prompt Zu verwendender Wert: consent
response_type Zu verwendender Wert: code
Es wird ein Autorisierungscode erwartet.
scope Zu verwendender Wert: https://www.googleapis.com/auth/sdm.service
Der SDM API-Bereich.
state Optional. Ein opaker Wert, der vom developer -Client verwendet wird, um den Status zwischen der Anfrage und dem Callback beizubehalten.

Beispiel-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 der Nutzer die Berechtigung erteilt hat, wird ein Autorisierungscode als Parameter code im Weiterleitungs-URI zurückgegeben. user Mit diesem Code können Sie ein Zugriffstoken abrufen.

Hilfe zu Fehlern beim Zugriff auf PCM finden Sie in der PCM-Fehlerreferenz.

PCM in Ihre App einbinden

Fügen Sie in Ihrer App die PCM-Ansicht mit dieser URL hinzu:

https://nestservices.google.com/partnerconnections

Wenn der user angemeldet ist, werden auf dieser Seite alle verknüpftenDevice Access developers sowie eine Liste aller Strukturen und Geräte mit Ein/Aus-Schaltern zum Erteilen und Widerrufen von Berechtigungen angezeigt. Der user kann die Verbindung zu einem Partner auf dieser Seite auch für jeden Partner einzeln trennen.

Nicht bestätigte Apps

Für die SDM API wird ein eingeschränkter Bereich verwendet. Das bedeutet, dass alle Apps, die diesen Bereich während der Autorisierung verwenden, als „nicht verifiziert“ gekennzeichnet werden, sofern die OAuth API-Überprüfung nicht abgeschlossen ist. Wenn Sie Device Access für den privaten Gebrauch verwenden, ist keine OAuth-API-Überprüfung erforderlich.

Während des Autorisierungsprozesses wird möglicherweise der Bildschirm „Google hat diese App nicht überprüft“ angezeigt. Das passiert, wenn der Bereich sdm.service nicht auf Ihrem OAuth-Zustimmungsbildschirm in Google Cloud konfiguriert ist. Dieser Bildschirm kann umgangen werden, indem Sie auf die Option Erweitert und dann auf Weiter zu Projektname (unsicher) klicken.

Weitere Informationen

Zugriffstokens

Für alle Aufrufe der SDM API zum Verwalten autorisierter Strukturen und Geräte muss das eindeutige Zugriffstoken verwendet werden, das dem developer von deruser während der Autorisierung gewährt wurde. Zugriffstokens sind kurzlebig und müssen regelmäßig aktualisiert werden, um den Zugriff aufrechtzuerhalten.

Wenn a user später den Zugriff auf eine Struktur oder ein Gerät widerruft, läuft das Zugriffstoken sofort ab und kann nicht aktualisiert werden. Diedeveloper kann dann nicht mehr im Namen von userdie SDM API aufrufen. developer

Kontoautorisierung widerrufen

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

  1. Der Nutzer kann die Berechtigungen 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 Widerruf 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 böswilligen Entwickler ermöglichen, die Kommunikation zwischen Google und seinen Nutzern abzufangen und zu ändern. Eingebettete WebViews wirken sich nicht nur auf die Kontosicherheit, sondern auch auf die Nutzerfreundlichkeit Ihrer Anwendung aus.

Wenn Sie von dieser Richtlinie betroffen sind, lesen Sie den Supportartikel Bevorstehende Sicherheitsänderungen am Google-Autorisierungsendpunkt für OAuth 2.0 in eingebetteten WebViews.