Autoryzacja

Developermogą używać interfejsu SDM API do wyświetlania urządzeń Google Nest i zarządzania nimi w imieniu user. Interfejs API SDM sprawdza, czy user zarządza dostępem do urządzeń, user czy wyraził zgodę nadeveloper odczytywanie i zapisywanie cech każdego urządzenia oraz czy aplikacjadeveloper została dodana do białej listy dostępu do poszczególnych cech.

Aby móc używać interfejsu SDM API do zarządzania urządzeniami,developer musisz najpierw autoryzować je przez user.

Omówienie procesu autoryzacji znajdziesz na stronie Autoryzacja konta w Device Access krótkim przewodniku.

Pomoc dotyczącą rozwiązywania problemów z autoryzacją znajdziesz w artykule Błędy autoryzacji.

Przepływ OAuth

Interfejs SDM API używa trzyetapowej procedury Google OAuth do autoryzacji:user

  • Gdy a user chce upoważnić Cię do zarządzania a developer urządzeniami Nest, developer wysyłauser do PCM, gdzie userloguje się na swoje konto Google.
  • user zaznacza uprawnienia, które mają zostać przyznane developerw PCM.
  • user Wyraża zgodę za pomocą protokołu OAuth i przyznajedeveloper kod autoryzacji.
  • developer do pobierania tokena dostępu wykorzystuje kod autoryzacji.
  • developer używa tokena dostępu z wywołaniami interfejsu API SDM do zarządzania urządzeniami.

Więcej informacji o Google OAuth i sposobie jego konfiguracji znajdziesz w artykule Korzystanie z OAuth 2.0 do korzystania z interfejsów API Google.

Menedżer połączeń z partnerami (PCM)

PCM jest dostarczane przez interfejs SDM API. Jest to widok zawierający wszystkie struktury, urządzenia i opcje dostępu, któreuser może przyznawać developer. userWybiera, co przyznać dostęp w trakcie procesu autoryzacji, i zachowuje kontrolę nad tym dostępem.

Opcje wybrane w PCM są mapowane na grupy cech, które są zbiorami cech, do których developer ma dostęp. Niektóre grupy cech są powiązane ze sobą w zależności od typu integracji, którądeveloper oferuje user, a useraby umożliwić integrację, muszą przyznać uprawnienia tym połączonym grupom cech. W innym przypadku użytkownik może przyznawać uprawnienia poszczególnym niepowiązanym grupom cech.

Włącz PCM

Aby włączyć widok PCM w przypadku user, zastąp standardowy punkt końcowy OAuth 2.0 interfejsu Google API w żądaniu autoryzacji:

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

Użyj w adresie URL tych parametrów:

Parametr Opis
redirect_uri Identyfikator URI, który będzie kierować user po udanej autoryzacji.
client_id Identyfikator klienta OAuth 2.0 z Twojego projektu Google Cloud. Upewnij się, że jest to identyfikator powiązany z Twoim Project identyfikatorem. Pamiętaj, że identyfikator klienta OAuth musi być prawidłowy i unikalny dla elementu projecti nie może być udostępniany innym project.
access_type Wartość do wykorzystania: offline
prompt Wartość do wykorzystania: consent
response_type Wartość do wykorzystania: code
oczekiwany kod autoryzacji.
scope Wartość do użycia: https://www.googleapis.com/auth/sdm.service
Zakres interfejsu SDM API.
state Opcjonalnie. Nieprzezroczysta wartość używana przez klienta developer do utrzymywania stanu żądania i wywołania zwrotnego.
linking_token Token połączenia uzyskany za pomocą polecenia GetToken.

Przykładowy 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

Po user udzieleniu uprawnienia zwracany jest kod autoryzacji jako parametr code w identyfikatorze URI przekierowania. Aby uzyskać token dostępu, użyj tego kodu.

Pomoc w przypadku problemów z dostępem do PCM znajdziesz w dokumentacji błędów menedżera połączeń PCM.

Dodaj PCM do swojej aplikacji

W aplikacji dodaj widok PCM za pomocą tego adresu URL:

https://nestservices.google.com/partnerconnections

Gdy użytkownik jest zalogowany user na tej stronie, są widoczne wszystkie powiązane z nim obiektyDevice Access developeroraz lista wszystkich struktur i urządzeń z przełącznikami umożliwiającymi przyznawanie i unieważnianie uprawnień. Na tej stronie user można również odłączyć połączenie partnerskie dla poszczególnych partnerów.

Niezweryfikowane aplikacje

Interfejs SDM API używa zakresu z ograniczeniami, co oznacza, że aplikacje korzystające z tego zakresu podczas autoryzacji będą miały stan „niezweryfikowany” (chyba że ukończono weryfikację interfejsu API OAuth). Podczas korzystania Device Access z osobistych zastosowań weryfikacja OAuth API nie jest wymagana.

Podczas autoryzacji może wystąpić ekran „Google nie zweryfikował tej aplikacji”, jeśli zakres sdm.service nie został skonfigurowany na ekranie zgody OAuth w Google Cloud. Aby pominąć ten ekran, kliknij opcję Zaawansowane, a następnie Otwórz nazwę projektu (niebezpieczne).

Więcej informacji znajdziesz na stronie Niezweryfikowany ekran aplikacji.

Tokeny dostępu

Wszystkie wywołania interfejsu SDM API do zarządzania autoryzowanymi strukturami i urządzeniami muszą korzystać z unikalnego tokena dostępu przyznanego developer w ramachuser autoryzacji. Tokeny dostępu są ważne tylko przez krótki czas i muszą być regularnie odświeżane, aby zapewnić dalszy dostęp.

Jeśli a user później unieważnisz developer dostęp do struktury lub urządzenia, token dostępu natychmiast utraci ważność i nie będzie można go odświeżyć, adeveloper nie będzie już mógł wywoływać interfejsu SDM API w jego imieniu user.

Cofnij autoryzację konta

Autoryzowanie konta Google można cofnąć na kilka sposobów. Zaleca się, aby użytkownik używał Menedżera połączeń partnera (PCM) do modyfikowania uprawnień dotyczących konta. Więcej informacji znajdziesz w sekcji Modyfikowanie uprawnień konta. Token dostępu możesz też unieważnić w ten sposób:

  1. Użytkownik może go anulować na stronie https://myaccount.google.com/permissions.

  2. Deweloper może przekazać token dostępu do punktu końcowego https://oauth2.googleapis.com/revoke. Więcej informacji o Google OAuth i unieważnianiu tokenów znajdziesz w artykule o anulowaniu tokenów.

Umieszczone komponenty WebView

Nowe zasady dotyczące bezpiecznych przeglądarek uniemożliwiają wyświetlanie żądań Google OAuth w bibliotekach osadzonych przeglądarek, które często są nazywane osadzonymi komponentami WebView. Wszystkie umieszczone komponenty WebView będą blokowane. Umieszczone biblioteki WebView stwarzają problemy, ponieważ umożliwiają umyślnemu deweloperowi przechwytywanie i zmienianie komunikacji między Google a użytkownikami. Umieszczone komponenty WebView nie tylko wpływają na bezpieczeństwo konta, ale także na użyteczność aplikacji.

Jeśli te zasady Cię dotyczą, zapoznaj się z artykułem Nadchodzące zmiany w zabezpieczeniach punktu końcowego autoryzacji Google OAuth 2.0 w osadzonych komponentach WebView.