Авторизация

- l10n- заполнитель34

Developerможет использовать SDM API для просмотра и управления устройствами Google Nest от имени user. API SDM проверяет, что user управляет устройствами, к которым осуществляется доступ, что user дал согласие на чтение или записьdeveloper характеристик каждого устройства и чтоdeveloper внесен в белый список для доступа к каждой характеристике.

Чтобы использовать API SDM для управления устройствами,developer должен сначала быть авторизован user.

Подробное описание процесса авторизации см. на странице «Авторизация учетной записи» краткого руководства Device Access .

Справку по устранению ошибок авторизации см. в разделе Ошибки авторизации .

Поток OAuth

API SDM использует трехэтапный поток Google OAuth для авторизацииuser :

  • Когда a user желает авторизовать a developer для управления устройствами Nest, developer отправляетuser в PCM, где userвходит в свою учетную запись Google.
  • user выбирает разрешения, которые будут предоставлены developerв PCM.
  • user предоставляет согласие через OAuth, предоставляяdeveloper код авторизации.
  • developer использует код авторизации для получения токена доступа.
  • developer использует токен доступа с вызовами API SDM для управления устройствами.

Чтобы узнать больше о Google OAuth и о том, как его настроить, см. Использование OAuth 2.0 для доступа к API Google .

Менеджер по связям с партнерами (PCM)

PCM предоставляется API SDM. Это представление, в котором перечислены все структуры, устройства и параметры доступа, которыеuser может предоставить developer. userвыбирает, к чему предоставить доступ во время процесса авторизации, и сохраняет контроль над этим доступом.

Параметры, выбранные в PCM, сопоставляются с группами признаков, которые представляют собой наборы признаков, к которым developer будет предоставлен доступ. Некоторые группы признаков связаны друг с другом, в зависимости от того, какой тип интеграцииdeveloper предлагает user, и userдолжен предоставить разрешения этим связанным группам признаков, чтобы включить эту интеграцию. В противном случае пользователь имеет возможность по своему желанию предоставлять разрешения для отдельных несвязанных групп признаков.

Включить ПКМ

Чтобы включить представление PCM для user, замените стандартную конечную точку OAuth 2.0 Google API этой новой конечной точкой OAuth для запроса авторизации:

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

Используйте эти параметры в URL-адресе:

Параметр Описание
redirect_uri URI для направления user после успешной авторизации.
client_id Идентификатор клиента OAuth 2.0 из вашего проекта Google Cloud. Убедитесь, что это тот же идентификатор, который связан с вашим идентификатором Project . Обратите внимание, что идентификатор клиента OAuth должен быть действительным и уникальным для projectи не может использоваться совместно с другими project.
access_type Значение для использования: offline
prompt Значение для использования: consent
response_type Значение для использования: code
В ответ ожидается код авторизации.
scope Используемое значение: https://www.googleapis.com/auth/sdm.service
Область действия API SDM.
state Необязательный. Непрозрачное значение, используемое клиентом developer для поддержания состояния между запросом и обратным вызовом.

Пример 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

После того как user дает разрешение, код авторизации возвращается в качестве параметра code в URI перенаправления. Используйте этот код, чтобы получить токен доступа.

Информацию о любых ошибках, возникающих при доступе к PCM, см. в разделе «Справочник по ошибкам Partner Connections Manager (PCM)» .

Добавьте PCM в свое приложение

Добавьте в свое приложение представление PCM, используя этот URL-адрес:

https://nestservices.google.com/partnerconnections

Когда user входит в систему, на этой странице отображаются все связанные с нимиDevice Access developer, а также список всех структур и устройств с переключателями для предоставления и отзыва разрешений. user также может отключить партнерское соединение для каждого партнера на этой странице.

Непроверенные приложения

API SDM использует ограниченную область действия. Это означает, что любые приложения, использующие эту область во время авторизации, будут «непроверенными», пока проверка API OAuth не будет завершена. При использовании Device Access в личных целях проверка OAuth API не требуется.

Во время процесса авторизации вы можете увидеть экран «Google не проверил это приложение», который появляется, если область действия sdm.service не настроена на экране согласия OAuth в Google Cloud. Этот экран можно обойти, щелкнув параметр «Дополнительно» , а затем нажав «Перейти к имени проекта (небезопасно)» .

Дополнительную информацию см. в разделе «Экран непроверенного приложения» .

Токены доступа

Все вызовы API SDM для управления авторизованными структурами и устройствами должны использовать уникальный токен доступа, предоставленный developer user во время авторизации. Токены доступа недолговечны и должны регулярно обновляться, чтобы обеспечить постоянный доступ.

Если a user позже отзовет доступ developer к структуре или устройству, срок действия маркера доступа немедленно истечет и его нельзя будет обновить, аdeveloper больше не сможет вызывать API SDM от имени этого user.

Отменить авторизацию аккаунта

Существует несколько способов деавторизации учетной записи Google. Предпочтительным методом является использование пользователем диспетчера подключений партнеров (PCM) для изменения разрешений учетной записи. Дополнительную информацию см. в разделе Изменение разрешений учетной записи . Токен доступа также можно отозвать следующими способами:

  1. Пользователь может отозвать его на странице https://myaccount.google.com/permissions .

  2. Разработчик может передать токен доступа конечной точке https://oauth2.googleapis.com/revoke . Дополнительную информацию о Google OAuth и отзыве токена см. в разделе Отзыв токена .

Встроенные веб-просмотры

Новая политика безопасности браузера запрещает запросы Google OAuth во встроенных библиотеках браузера, обычно называемых встроенными веб-просмотрами. Все встроенные веб-просмотры будут заблокированы. Встроенные библиотеки веб-просмотра создают проблемы, поскольку позволяют злоумышленникам перехватывать и изменять коммуникации между Google и его пользователями. Встроенные веб-просмотры не только влияют на безопасность учетной записи, но и могут повлиять на удобство использования вашего приложения.

Если на вас влияет эта политика, ознакомьтесь со статьей «Предстоящие изменения безопасности конечной точки авторизации Google OAuth 2.0» в статье поддержки встроенных веб-просмотров .