Настройка связки аккаунтов

Настройка авторизационного сервера

Убедитесь, что авторизационный сервер, который вы используете, удовлетворяет требованиям Диалогов:

  • Авторизационный сервер должен работать в соответствии с RFC.
  • Сервер должен обрабатывать обязательные параметры, аутентифицировать пользователей и генерировать авторизационный код code.
  • После того как пользователь был аутентифицирован на сервере авторизации, сервер должен перенаправлять OAuth-приложение (приложение для Алисы) на URL: https://social.yandex.net/broker/redirect (redirection endpoint). В параметрах запроса сервер авторизации должен передавать авторизационный код code, а также другие параметры. Подробнее см. в разделе Как устроен процесс авторизации в навыке.
  • URL для получения токена должен уметь идентифицировать OAuth-приложение и генерировать OAuth-токен (опционально — также refresh-токен) для переданного кода авторизации.

Кроме собственного сервера авторизации, для аутентификации пользователей Яндекса вы можете использовать API Яндекс.Паспорта.

Использование refresh-токенов

Если используются refresh-токены, Диалоги будут автоматически обновлять токены доступа. Когда срок действия OAuth-токена истекает, Диалоги отправляют запрос на сервер авторизации за новым токеном.

Обратите внимание — сервер авторизации должен отдавать обновленный токен в течение 5 секунд. Если сервер не ответит за это время, Диалоги отправят повторный запрос. Если через 5 секунд от сервера снова не придет ответ, связка аккаунтов будет разорвана. Пользователю потребуется повторно связать аккаунты.

Подробнее про refresh-токены см. в спецификации к OAuth 2.0.

Создание связки аккаунтов

Чтобы создать связку аккаунтов, откройте консоль разработчика и перейдите на страницу навыка. Во вкладке «Настройки» прокрутите вниз до раздела «Связка аккаунтов» и нажмите кнопку Создать.

Ниже приведено описание полей:

  • Идентификатор приложения — идентификатор OAuth-приложения на сервере авторизации (например, 4760187d41bc4b7799476b42b5103213).

  • Секрет приложения — пароль OAuth-приложения на сервере авторизации (например, f25bebr991ff419893db655428e4e1de).
  • URL авторизации — страница, на которой должен авторизоваться пользователь, чтобы разрешить навыку доступ к своему аккаунту (например, https://oauth-server.com/oauth/login).
  • URL для получения токена — адрес, на который следует отправить запрос с авторизационным кодом, чтобы получить OAuth-токен доступа (например, https://skill-example/token).
  • URL для обновления токена — адрес для обновления полученного OAuth-токена (например, https://oauth-server.com/refresh).
  • Идентификатор группы действий — список разрешений, которые следует выдавать для запрашиваемых OAuth-токенов (например, для умного дома home:lights). Если нужно указать несколько разрешений, то их следует перечислять через «&».