Autoryzacja

Developermogą używać interfejsu SDM API do wyświetlania urządzeń Google Nest i zarządzania nimi w imieniu user. Interfejs SDM API sprawdza, czy user zarządza urządzeniami, do których uzyskuje się dostęp, czy user wyraził zgodę na odczyt lub zapisywanie cech poszczególnych urządzeń oraz czydeveloper znajduje się na białej liście dostępu do poszczególnych cech.developer

Aby używać interfejsu SDM API do zarządzania urządzeniami, interfejsdeveloper musi najpierw zostać autoryzowany przez user.

Proces autoryzacji omówiono na stronie Autoryzowanie konta w  Device Access przewodniku Szybki start.

Aby uzyskać pomoc dotyczącą rozwiązywania problemów z błędami autoryzacji, zapoznaj się z artykułem Błędy autoryzacji.

Przepływ OAuth

Interfejs SDM API używa trzyetapowego procesu autoryzacji OAuth Google:user

  • Gdy a user chce autoryzować a developer urządzenia Nest, developer wysyłauser do PCM, gdzie userloguje się na swoje konto Google.
  • user wybiera uprawnienia do przyznania developerw PCM.
  • user przekazuje zgodę za pomocą protokołu OAuth, uzyskującdeveloper kod autoryzacji.
  • developer używa kodu autoryzacji do pobierania tokena dostępu.
  • developer używa tokena dostępu w wywołaniach interfejsu SDM API do zarządzania urządzeniami.

Więcej informacji o protokole OAuth Google i o jego konfigurowaniu znajdziesz w artykule Używanie protokołu OAuth 2.0 do uzyskiwania dostępu do interfejsów API Google.

Menedżer połączeń z usługą partnerską (PCM)

PCM jest udostępniany przez interfejs SDM API. To widok zawierający listę wszystkich struktur, urządzeń i opcji dostępu, któreuser może przyznać developer. userdecyduje, do czego przyznać dostęp podczas procesu autoryzacji, i zachowuje kontrolę nad tym dostępem.

Opcje wybrane w PCM są mapowane na grupy cech, czyli kolekcje cech, do których developer otrzymuje dostęp. Niektóre grupy cech są ze sobą połączone w zależności od tego, jaki typ integracjideveloper oferuje user. Aby umożliwić tę integrację, usermusi przyznać uprawnienia tym połączonym grupom cech. W przeciwnym razie użytkownik może przyznać uprawnienia poszczególnym, niezwiązanym ze sobą grupom cech.

Włącz PCM

Aby włączyć widok PCM dla user, zastąp standardowy punkt końcowy interfejsu API Google OAuth 2.0 nowym punktem końcowym OAuth dla żądania autoryzacji:

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

W adresie URL użyj tych parametrów:

Parametr Opis
redirect_uri URI kierujący do user po pomyślnej autoryzacji.
client_id Identyfikator klienta OAuth 2.0 z Twojego projektu Google Cloud. Upewnij się, że jest to ten sam identyfikator powiązany z Twoim identyfikatorem Project . Pamiętaj, że identyfikator klienta OAuth musi być prawidłowy i niepowtarzalny dla projecti nie można go udostępniać innym project.
access_type Wartość do użycia: offline
prompt Wartość do użycia: consent
response_type Wartość do użycia: code
W odpowiedzi należy podać kod autoryzujący.
scope Wartość do użycia: https://www.googleapis.com/auth/sdm.service
Zakres interfejsu SDM API.
state Opcjonalnie. Nieczytelna wartość używana przez klienta developer do utrzymywania stanu między żądaniem a wywołaniem zwrotnym.

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

Gdy user udzieli uprawnień, w identyfikatorze URI przekierowania zwracany jest kod autoryzacji jako parametr code. Użyj tego kodu, aby uzyskać token dostępu.

Jeśli wystąpią błędy podczas korzystania z PCM, zapoznaj się z artykułem Manager połączeń z partnerem (PCM) – informacje o błędach.

Dodawanie PCM do aplikacji

W swojej aplikacji dodaj widok PCM, używając tego adresu URL:

https://nestservices.google.com/partnerconnections

Gdy użytkownik user zaloguje się na konto, na tej stronie wyświetlą się wszystkie połączone z nimDevice Access developer, a także lista wszystkich struktur i urządzeń z opcjami przyznawania i odwoływania uprawnień. user może też odłączać na tej stronie połączenia z konkretnymi partnerami.

Niezweryfikowane aplikacje

Interfejs SDM API używa zakresu z ograniczeniami, co oznacza, że wszystkie aplikacje, które używają tego zakresu podczas autoryzacji, nie zostaną zweryfikowane, dopóki nie zostanie zakończona weryfikacja interfejsu OAuth API. Jeśli używasz Device Access do celów osobistych, weryfikacja OAuth API nie jest wymagana.

Podczas procesu autoryzacji może się wyświetlić ekran „Google nie zweryfikowało tej aplikacji”. Wyświetla się on, jeśli zakres sdm.service nie jest skonfigurowany na ekranie akceptacji OAuth w Google Cloud. Aby pominąć ten ekran, kliknij opcję Zaawansowane, a następnie Przejdź do Nazwa projektu (niebezpieczne).

Więcej informacji znajdziesz na ekranie niezweryfikowanej aplikacji.

Tokeny dostępu

Wszystkie wywołania interfejsu SDM API służące do zarządzania autoryzowanymi strukturami i urządzeniami muszą używać unikalnego tokena dostępu przyznanego developer przezuser podczas autoryzacji. Tokeny dostępu są ważne przez krótki czas i trzeba je regularnie odświeżać, aby zapewnić nieprzerwany dostęp do konta.

Jeśli a user póżniej cofnie developer dostęp do struktury lub urządzenia, token dostępu natychmiast wygaśnie i nie będzie można go odświeżyć, a developer nie będzie już mógł wywoływać interfejs SDM API w imieniu tego user.

Anulowanie autoryzacji konta

Istnieją różne sposoby odwoływania autoryzacji konta Google. Najlepszą metodą jest użycie przez użytkownika Menedżera połączeń z partnerem (PCM) do modyfikowania uprawnień konta. Więcej informacji znajdziesz w artykule Modyfikowanie uprawnień konta. Token dostępu można też anulować w ten sposób:

  1. Użytkownik może cofnąć uprawnienia 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 Anulowanie tokenów.

Wbudowane widoki sieciowe

Nowe zasady dotyczące bezpiecznej przeglądarki zabraniają obsługi żądań Google OAuth w umieszczonych bibliotekach przeglądarek, często nazywanych też osadzonymi komponentami WebView. Wszystkie wbudowane widoki stron zostaną zablokowane. Umieszczone biblioteki WebView są problematyczne, ponieważ umożliwiają nieuczciwym programistom przechwytywanie i zmienianie komunikacji między Google a użytkownikami. Wbudowane komponenty WebView nie tylko wpływają na bezpieczeństwo konta, ale też mogą wpływać na łatwość obsługi aplikacji.

Jeśli te zasady mają wpływ na Twoją witrynę, zapoznaj się z artykułem pomocy Najnowsze zmiany w zasadach zabezpieczeń punktu końcowego autoryzacji OAuth 2.0 Google w osadzonych bibliotekach WebView.