Autorizzazione

IDeveloperpossono utilizzare l'API SDM per visualizzare e gestire i dispositivi Google Nest per conto dei user. L'API SDM convalida che user gestisce i dispositivi a cui viene eseguito l'accesso, che user ha dato il consenso alla lettura o alla scrittura dei tratti di ciascun dispositivo e chedeveloper è stato inserito nella lista consentita per l'accesso a ciascun tratto.developer

Per utilizzare l'API SDM per la gestione dei dispositivi, ildeveloper deve prima essere autorizzato dal user.

Per una procedura dettagliata della procedura di autorizzazione, consulta la pagina Autorizza un account della Device Access guida rapida.

Per assistenza nella risoluzione degli errori di autorizzazione, consulta la sezione Errori di autorizzazione.

Flusso OAuth

L'API SDM utilizza un flusso OAuth di Google a tre vie per user l'autorizzazione:

  • Quando a user vuole autorizzare a developer la gestione dei dispositivi Nest, developer inviauser il messaggio al PCM, dove useraccede al proprio Account Google.
  • user consente di selezionare le autorizzazioni da concedere per il developer in PCM.
  • Il user fornisce il consenso tramite OAuth, concedendo aldeveloper un codice di autorizzazione.
  • developer utilizza il codice di autorizzazione per recuperare un token di accesso.
  • Il developer utilizza il token di accesso con le chiamate all'API SDM per la gestione dei dispositivi.

Per scoprire di più su OAuth di Google e su come eseguire la configurazione, consulta l'articolo Utilizzare OAuth 2.0 per accedere alle API di Google.

Partner Connections Manager (PCM)

PCM è fornito dall'API SDM. Si tratta di una visualizzazione che elenca tutte le strutture, i dispositivi e le opzioni di accesso che iluser può concedere al developer. Il user sceglie a cosa concedere l'accesso durante la procedura di autorizzazione e mantiene il controllo di questo accesso.

Le opzioni selezionate in PCM vengono associate a gruppi di tratti, ovvero raccolte di tratti a cui developer verrà concesso l'accesso. Alcuni gruppi di tratti sono collegati tra loro, a seconda del tipo di integrazione chedeveloper offre al usere il userdeve concedere le autorizzazioni per questi gruppi di tratti collegati per attivare l'integrazione. In caso contrario, l'utente ha la possibilità di concedere le autorizzazioni per singoli gruppi di tratti sganciati, se lo desidera.

Abilita PCM

Per attivare la visualizzazione PCM per un user, sostituisci l'endpoint OAuth 2.0 standard dell'API Google con questo nuovo endpoint OAuth per la richiesta di autorizzazione:

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

Utilizza questi parametri nell'URL:

Parametro Descrizione
redirect_uri L'URI a cui indirizzare user dopo la corretta autorizzazione.
client_id L'ID client OAuth 2.0 del tuo progetto Google Cloud. Assicurati che sia lo stesso associato al tuo ID Project . Tieni presente che un ID client OAuth deve essere valido e univoco per un projecte non può essere condiviso con altri project.
access_type Valore da utilizzare: offline
prompt Valore da utilizzare: consent
response_type Valore da utilizzare: code
in risposta è previsto un codice di autorizzazione.
scope Valore da utilizzare: https://www.googleapis.com/auth/sdm.service
L'ambito dell'API SDM.
state Facoltativo. Valore opaco utilizzato dal developer client per mantenere lo stato tra la richiesta e il callback.

Esempio di 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

Dopo che l'utente user ha concesso l'autorizzazione, viene restituito un codice di autorizzazione come parametro code nell'URI di reindirizzamento. Utilizza questo codice per ottenere un token di accesso.

Per assistenza in caso di errori riscontrati durante l'accesso a PCM, consulta Partner Connections Manager (PCM) (Riferimento agli errori).

Aggiungere PCM all'app

Nell'app, aggiungi la visualizzazione PCM utilizzando questo URL:

https://nestservices.google.com/partnerconnections

Quando user ha eseguito l'accesso, questa pagina mostra tutti i relativiDevice Access developercollegati, nonché un elenco di tutte le strutture e i dispositivi con opzioni di attivazione/disattivazione per la concessione e la revoca delle autorizzazioni. user puoi anche scollegare un collegamento con un partner su base individuale da questa pagina.

App non verificate

L'API SDM utilizza un ambito con restrizioni, il che significa che tutte le app che utilizzano questo ambito durante l'autorizzazione saranno "non verificate" a meno che non venga completata la verifica dell'API OAuth. Quando si utilizza Device Access per uso personale, la verifica dell'API OAuth non è richiesta.

Durante la procedura di autorizzazione, potresti visualizzare la schermata "Google non ha verificato questa app", che viene visualizzata se l'ambito sdm.service non è configurato nella schermata per il consenso OAuth in Google Cloud. Questa schermata può essereaggirata facendo clic sull'opzione Avanzate e poi su Vai a Nome progetto (non sicuro).

Per ulteriori informazioni, consulta la schermata App non verificata.

Token di accesso

Tutte le chiamate all'API SDM per gestire strutture e dispositivi autorizzati devono utilizzare il token di accesso univoco concesso al developer daluser durante l'autorizzazione. I token di accesso hanno una durata breve e devono essere aggiornati regolarmente per garantire l'accesso continuo.

Se a user in un secondo momento revoca developer l'accesso a una struttura o a un dispositivo, il token di accesso scade immediatamente e non può essere aggiornato e il developer non potrà più chiamare l'API SDM per conto di quel user.

Revoca l'autorizzazione dell'account

Esistono diversi modi per disautorizzare un Account Google. Il metodo preferito è che l'utente utilizzi Partner Connections Manager (PCM) per modificare le autorizzazioni dell'account. Per ulteriori informazioni, consulta la sezione Modificare le autorizzazioni account. Un token di accesso può essere revocato anche con i seguenti metodi:

  1. L'utente può revocare l'accesso all'indirizzo https://myaccount.google.com/permissions.

  2. Lo sviluppatore può passare il token di accesso all'endpoint https://oauth2.googleapis.com/revoke. Per scoprire di più su OAuth di Google e sulla revoca dei token, consulta Revocare un token.

Visualizzazioni web incorporate

Un nuovo criterio del browser sicuro vieta le richieste Google OAuth nelle librerie del browser incorporate, comunemente denominate WebView incorporate. Tutte le visualizzazioni web incorporate verranno bloccate. Le librerie WebView incorporate sono problematiche perché consentono a uno sviluppatore malintenzionato di intercettare e modificare le comunicazioni tra Google e i suoi utenti. Le WebView incorporate non influiscono solo sulla sicurezza dell'account, ma potrebbero anche influire sull'usabilità della tua applicazione.

Se queste norme ti interessano, consulta l'articolo del Centro assistenza Modifiche di sicurezza imminenti all'endpoint di autorizzazione OAuth 2.0 di Google nelle librerie WebView incorporate.