Autoryzacja

Developermogą używać interfejsu SDM API do wyświetlania urządzeń Google Nest i zarządzania nimi w imieniu userInterfejs SDM API sprawdza, czy user zarządza urządzeniami, do których uzyskuje dostęp, czy user wyraził zgodę na developer odczytywanie lub zapisywanie cech każdego urządzenia oraz czy developer został dodany do listy dozwolonych w przypadku dostępu do każdej cechy.

Aby używać interfejsu SDM API do zarządzania urządzeniami,developer musi najpierw uzyskać autoryzację od user.

Aby zapoznać się z procesem autoryzacji, otwórz stronę Autoryzowanie konta w przewodniku Device Access Szybki start.

Jeśli potrzebujesz pomocy w rozwiązywaniu problemów z błędami autoryzacji, zapoznaj się z artykułem Błędy autoryzacji.

Przepływ OAuth

Interfejs SDM API używa trzyetapowego przepływu Google OAuth do user autoryzacji:

  • Gdychce autoryzowaćdo zarządzania urządzeniami Nest, wysyła do PCM, gdzie loguje się na swoje konto Google. a user a developer developer user user
  • W Menedżerze połączeń z partnerami wybiera uprawnienia, które chce przyznać. user developer
  • wyraża zgodę za pomocą protokołu OAuth, przyznając developer kod autoryzacji. user
  • używa kodu autoryzacji, aby pobrać token dostępu. developer
  • używa tokena dostępu w wywołaniach interfejsu SDM API do zarządzania urządzeniami. developer

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

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

PCM jest udostępniany przez interfejs SDM API. Jest to widok, w którym wyświetlają się wszystkie struktury, urządzenia i opcje dostępu, które user może przyznać developer. Podczas procesu autoryzacji user wybiera, do czego chce przyznać dostęp, i zachowuje kontrolę nad tym dostępem.

Opcje wybrane w PCM są mapowane na grupy cech, czyli zbiory cech, do których dostęp otrzyma. developer Niektóre grupy cech są ze sobą powiązane w zależności od tego, jaki typ integracji developer oferuje user, a aby włączyć tę integrację, user musi przyznać uprawnienia do tych powiązanych grup cech. W przeciwnym razie użytkownik może przyznać uprawnienia do poszczególnych, niepowiązanych grup cech.

Włączanie PCM

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

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

Użyj tych parametrów w adresie URL:

Parametr Opis
redirect_uri Identyfikator URI, do którego ma zostać przekierowany user po pomyślnej autoryzacji.
client_id Identyfikator klienta OAuth 2.0 z projektu Google Cloud. Upewnij się, że jest to ten sam identyfikator, który jest powiązany z Twoim Project ID. Pamiętaj, że identyfikator klienta OAuth musi być prawidłowy i unikalny dla project, oraz nie może być udostępniany innym projectosobom.
access_type Wartość do użycia: offline
prompt Wartość do użycia: consent
response_type Wartość do użycia: code
Oczekiwany jest kod autoryzacji w zamian.
scope Wartość do użycia: https://www.googleapis.com/auth/sdm.service
Zakres interfejsu SDM API.
state Opcjonalnie. Nieprzezroczysta wartość używana przez developer klienta do utrzymywania stanu między żądaniem a wywołaniem zwrotnym.

Przykład adresu 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 przyzna uprawnienia, kod autoryzacji zostanie zwrócony jako parametr code w identyfikatorze URI przekierowania. Użyj tego kodu, aby uzyskać token dostępu.

Jeśli potrzebujesz pomocy w przypadku błędów występujących podczas uzyskiwania dostępu do PCM, zapoznaj się z artykułem Menedżer połączeń z partnerami (PCM) Informacje o błędach.

Dodawanie PCM do aplikacji

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

https://nestservices.google.com/partnerconnections

Gdy user jest zalogowany, na tej stronie wyświetlają się wszystkie połączone Device Access developeroraz lista wszystkich struktur i urządzeń z przełącznikami do przyznawania i odbierania uprawnień. Na tej stronie może też rozłączyć połączenie z partnerem. user

Aplikacje niezweryfikowane

Interfejs SDM API używa ograniczonego zakresu, co oznacza, że wszystkie aplikacje, które używają tego zakresu podczas autoryzacji, będą "niezweryfikowane", dopóki weryfikacja interfejsu OAuth API nie zostanie przeprowadzona. Jeśli używasz Device Access do celów osobistych, weryfikacja interfejsu OAuth API nie jest wymagana.

Podczas procesu autoryzacji może się wyświetlić ekran „Google nie zweryfikował tej aplikacji”, jeśli zakres sdm.service nie jest skonfigurowany na ekranie zgody OAuth w Google Cloud. Ten ekran można pominąć, klikając opcję Zaawansowane , a następnie Przejdź do nazwa projektu (niebezpieczne).

Więcej informacji znajdziesz w artykule Ekran aplikacji niezweryfikowanej screen.

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 przez developer przez user podczas autoryzacji. Tokeny dostępu mają krótki okres ważności i muszą być regularnie odświeżane, aby zapewnić ciągły dostęp.

Jeśli a user później odbierzedostę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ć interfejsu SDM API w imieniu user. developer

Cofanie autoryzacji konta

Istnieje kilka sposobów na cofnięcie autoryzacji konta Google. Preferowaną metodą jest użycie przez użytkownika Menedżera połączeń z partnerami (PCM) do modyfikowania uprawnień konta. Więcej informacji znajdziesz w artykule Zmienianie uprawnień konta. Token dostępu można też cofnąć za pomocą tych metod:

  1. Użytkownik może cofnąć autoryzację 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 cofaniu tokenów znajdziesz w artykule Cofanie tokena.

Wbudowane komponenty WebView

Nowe zasady dotyczące bezpiecznych przeglądarek zabraniają wysyłania żądań Google OAuth w bibliotekach wbudowanych przeglądarek, które są powszechnie nazywane wbudowanymi komponentami WebView. Wszystkie wbudowane komponenty WebView zostaną zablokowane. Biblioteki wbudowanych komponentów WebView są problematyczne, ponieważ umożliwiają złośliwemu deweloperowi przechwytywanie i zmienianie komunikacji między Google a jego użytkownikami. Wbudowane komponenty WebView nie tylko wpływają na bezpieczeństwo konta, ale też mogą pogorszyć użyteczność aplikacji.

Jeśli te zasady Cię dotyczą, zapoznaj się z artykułem Nadchodzące zmiany zabezpieczeń w punkcie końcowym autoryzacji Google OAuth 2.0 we wbudowanych komponentach WebView.