Autorización

LosDeveloperpueden usar la API de SDM para ver y administrar dispositivos Google Nest en nombre de los user. La API de SDM valida que el elemento user administre los dispositivos a los que se accede, que user haya dado su consentimiento para quedeveloper se lea o escriba las características de cada dispositivo y quedeveloper se haya incluido en la lista de entidades permitidas para acceder a cada característica.

Para usar la API de SDM para la administración de dispositivos, el userdebe autorizar primero adeveloper .

Para obtener una explicación del proceso de autorización, consulta la página Cómo autorizar una cuenta de la Device Access guía de inicio rápido.

Para obtener ayuda con la solución de errores de autorización, consulta Errores de autorización.

Flujo de OAuth

La API de SDM usa un flujo de OAuth de Google de tres pasos para la autorización deuser :

  • Cuando a user desea autorizar a developer para la administración de dispositivos Nest, developer envía eluser a PCM, donde useraccede a su Cuenta de Google.
  • user selecciona los permisos que se otorgarán a developeren PCM.
  • user proporciona consentimiento a través de OAuth y otorga adeveloper un código de autorización.
  • developer usa el código de autorización para recuperar un token de acceso.
  • developer usa el token de acceso con llamadas a la API de SDM para la administración de dispositivos.

Para obtener más información sobre OAuth de Google y cómo configurarlo, consulta Usa OAuth 2.0 para acceder a las APIs de Google.

Administrador de conexiones de socios (PCM)

La API de SDM proporciona PCM. Es una vista que enumera todas las estructuras, los dispositivos y las opciones de acceso queuser puede otorgar a developer. El userelige a qué otorgar acceso durante el proceso de autorización y retiene el control de ese acceso.

Las opciones seleccionadas en PCM se asignan a grupos de trait, que son colecciones de rasgos a los que developer tendrá acceso. Algunos grupos de atributos están vinculados entre sí, según el tipo de integración quedeveloper ofrezca a user, y userdebe otorgar permisos a esos grupos de atributos vinculados para habilitar esa integración. De lo contrario, el usuario puede otorgar permisos a grupos de atributos individuales y no vinculados según lo desee.

Habilitar PCM

Para habilitar la vista de PCM para un user, reemplaza el extremo OAuth 2.0 de la API de Google estándar por este nuevo extremo OAuth para la solicitud de autorización:

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

Usa estos parámetros en la URL:

Parámetro Descripción
redirect_uri Es el URI para dirigir a user después de una autorización correcta.
client_id El ID de cliente OAuth 2.0 de tu proyecto de Google Cloud. Asegúrate de que sea el mismo asociado a tu ID de Project . Ten en cuenta que un ID de cliente de OAuth debe ser válido y único para un project, y no se puede compartir con otros project.
access_type Valor que se usará: offline
prompt Valor que se usará: consent
response_type Valor que se debe usar: code
A cambio, se espera un código de autorización.
scope Valor que se debe usar: https://www.googleapis.com/auth/sdm.service
El alcance de la API de SDM.
state Opcional. Es un valor opaco que usa el cliente de developer para mantener el estado entre la solicitud y la devolución de llamada.

Ejemplo de URL de 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

Después de que user otorga permiso, se muestra un código de autorización como el parámetro code en el URI de redireccionamiento. Usa este código para obtener un token de acceso.

Para obtener ayuda con los errores detectados al acceder al PCM, consulta la Referencia de errores del Partner Connections Manager (PCM).

Agrega PCM a tu app

En tu app, agrega la vista de PCM con esta URL:

https://nestservices.google.com/partnerconnections

Cuando el user accede, esta página muestra todas susDevice Access developervinculadas, así como una lista de todas las estructuras y dispositivos con botones de activación para otorgar y revocar permisos. El user también puede desconectar una conexión de socio por socio desde esta página.

Apps sin verificar

La API de SDM usa un alcance restringido, lo que significa que cualquier app que use este alcance durante la autorización quedará “no verificada”, a menos que se complete la verificación de la API de OAuth. Cuando usas Device Access para uso personal, no se requiere la verificación de la API de OAuth.

Es posible que veas la pantalla "Google no verificó esta app" durante el proceso de autorización, que aparece si el permiso sdm.service no está configurado en tu pantalla de consentimiento de OAuth en Google Cloud. Para omitir esta pantalla, haz clic en la opción Advanced y, luego, en Go to Project Name (unsafe).

Consulta Pantalla de la app sin verificar para obtener más información.

Tokens de acceso

Todas las llamadas a la API de SDM para administrar estructuras y dispositivos autorizados deben usar el token de acceso único queuser le otorga a developer durante la autorización. Los tokens de acceso son de corta duración y deben actualizarse con regularidad para garantizar el acceso continuo.

Si a user revierte developer el acceso a una estructura o un dispositivo, el token de acceso vencerá de inmediato y no se podrá actualizar, ydeveloper ya no podrá llamar a la API de SDM en nombre de ese user.

Cómo revocar la autorización de la cuenta

Existen varias formas de desautorizar una Cuenta de Google. El método preferido es que el usuario utilice el Administrador de conexiones de socios (PCM) para modificar los permisos de la cuenta. Consulta Cómo modificar los permisos de la cuenta para obtener más información. También se puede revocar un token de acceso con los siguientes métodos:

  1. El usuario puede revocar el permiso en https://myaccount.google.com/permissions.

  2. El desarrollador puede pasar el token de acceso al extremo https://oauth2.googleapis.com/revoke. Para obtener más información sobre OAuth de Google y la revocación de tokens, consulta Cómo revocar un token.

WebViews incorporadas

Una nueva política del navegador seguro prohíbe las solicitudes de Google OAuth en las bibliotecas del navegador incorporadas, comúnmente denominadas WebViews incorporadas. Se bloquearán todos los objetos Webview incorporados. Las bibliotecas de WebView incorporadas son problemáticas porque permiten que un desarrollador malicioso intercepte y altere las comunicaciones entre Google y sus usuarios. Los WebViews incorporados no solo afectan la seguridad de la cuenta, sino que también pueden afectar la usabilidad de tu aplicación.

Si te afecta esta política, consulta el artículo de asistencia Próximos cambios de seguridad en el extremo de autorización de OAuth 2.0 de Google en WebViews incorporados.