Перейти к содержанию

Авторизация навыка умного дома через Паспорт: различия между версиями

Материал из Wiki yaboard
Содержание
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Столкнулся с желанием использовать Алису как умение Умный Дом. В реализации есть некоторые подводные камни, а именно в документации очень поверхностно описан процесс "сопряжения" учетной записи яндекса с приватным сервисом Умного Дома (УД). Реализовать свой oauth2 сервис авторизации и аутентификации затруднителен. Но есть решение - использовать для "сопряжения" сервис Яндекс.Паспорт.
{{metadesc | Используем Паспорт вместо собственного oAuth2 }}
__NOEDITSECTION__
__TOC__


Далее описывается способ "привязать аккаунт" через сервис Яндекс.Паспорт.


== Проблема ==


'''Задача''': Частный навык Яндекс Умный Дом прикрутить к своему приложению (собственное написанное приложение, OpenHub, majordomo).


'''Проблема''': Для использования навыка нужно пройти "Привязку аккаунта"
При подключении приватного навыка УДЯ к стороннему сервису (собственное приложение, OpenHub, majordomo, итд) необходимо пройти шаг "Привязка аккаунта".


К сожалению, [https://yandex.ru/dev/dialogs/alice/doc/auth/authorization-flow-docpage/#authorization-flow в документации] этот процесс сопряжения учетной записи Яндекса описан в общих чертах. Реализовать собственный oAuth2 сервис авторизации и аутентификации - дело непростое, со своими подводными камнями. Что делать?


Разрабатывать собственные сервисы как описано это в документации затруднительно.


[https://yandex.ru/dev/dialogs/alice/doc/auth/authorization-flow-docpage/#authorization-flow документация Яндекса по авторизации навыка Умного дома]
== Решение ==


Но в документации описано, что данный функционал есть у Яндекс.Паспорт. Через него мы и настроим "Привязку аккаунта"


Цитата безымянного героя:
По счастью, есть отличное решение: использовать для сопряжения '''сервис Яндекс.Паспорт'''.
<pre>
 
По Я.Паспорту вообще ничего особо делать не надо:
Далее описывается именно этот способ привязки аккаунта, взятый из комьюнити:
1) заходим на [https://oauth.yandex.ru/ oauth.yandex.ru], создаем новое "приложение"
 
2) в этом приложении выбираем "веб-сервис" и ставим callback url https://social.yandex.net/broker/redirect
# Заходим на [https://oauth.yandex.ru/ oauth.yandex.ru], создаем новое "приложение"
так же указываем минимальные права - просмотр email адреса (это нужно, чтобы сервис дал Сохранить настройки)
# В приложении выбираем "веб-сервис" и ставим callback url https://social.yandex.net/broker/redirect
3) Жмакаем сохранить, видим хэши ID и Пароль
# Указываем минимальные права: просмотр email-адреса (чтобы сервис дал сохранить настройки)
4) Идём на страницу связки аккаунтов в диалогах, вставляем данные как на картинке ниже
# Сохраняем. Видим хэши, ID и пароль ("Секрет").
</pre>
 
Теперь переходим на страницу связки аккаунтов в Диалогах и вставляем данные по примеру картинки ниже:
 
[[Файл:Photo 2020-06-12 20-03-30.jpg|450px]]


[[Файл:Photo 2020-06-12 20-03-30.jpg|мини]]


Еще нужно вбить в настройки Идентификатор приложения и Секрет приложения c созданного нового "приложения" Яндекс.Паспорта (oauth.yandex.ru)
Не забываем указать "Идентификатор приложения" и "Секрет приложения" (из нашего "приложения" в [https://oauth.yandex.ru Яндекс.Паспорте]).


Пример созданного "приложения" в Яндекс.Паспорте:
"Приложение" в Яндекс.Паспорте будет выглядеть примерно так:
<pre>
<pre>
<Название "приложения">
<Название "приложения">
Права:
Права:
Доступ к логину, имени и фамилии, полу
Доступ к логину, имени и фамилии, полу
Доступ к адресу электронной почты


Доступ к адресу электронной почты
ID: ***************  <- (ID из настроек Яндекс.Паспорта)
Пароль: ***********  <- (Секрет из настроек Яндекс.Паспорта)


ID: ****************************  <- '''в Идентификатор приложения ставим строку из настроек Яндекс.Паспорта'''
Пароль: ****************************  <- '''в Секрет приложения ставим строку из настроек Яндекс.Паспорта'''
Callback URL: https://social.yandex.net/broker/redirect
Callback URL: https://social.yandex.net/broker/redirect
Время жизни токена: Не менее, чем 1 год
Время жизни токена: Не менее, чем 1 год
Дата создания: 6/12/2020
Дата создания: 6/12/2020
</pre>
</pre>
<pre class="red">
ВНИМАНИЕ! На момент создания страницы неизвестно, будет ли при таком подключении самостоятельно обновляться токен.
</pre>
[[Category:Умный дом]]

Версия от 10:57, 22 июня 2020

Проблема

При подключении приватного навыка УДЯ к стороннему сервису (собственное приложение, OpenHub, majordomo, итд) необходимо пройти шаг "Привязка аккаунта".

К сожалению, в документации этот процесс сопряжения учетной записи Яндекса описан в общих чертах. Реализовать собственный oAuth2 сервис авторизации и аутентификации - дело непростое, со своими подводными камнями. Что делать?

Решение

По счастью, есть отличное решение: использовать для сопряжения сервис Яндекс.Паспорт.

Далее описывается именно этот способ привязки аккаунта, взятый из комьюнити:

  1. Заходим на oauth.yandex.ru, создаем новое "приложение"
  2. В приложении выбираем "веб-сервис" и ставим callback url https://social.yandex.net/broker/redirect
  3. Указываем минимальные права: просмотр email-адреса (чтобы сервис дал сохранить настройки)
  4. Сохраняем. Видим хэши, ID и пароль ("Секрет").

Теперь переходим на страницу связки аккаунтов в Диалогах и вставляем данные по примеру картинки ниже:


Не забываем указать "Идентификатор приложения" и "Секрет приложения" (из нашего "приложения" в Яндекс.Паспорте).

"Приложение" в Яндекс.Паспорте будет выглядеть примерно так:

<Название "приложения">
Права:
 Доступ к логину, имени и фамилии, полу
 Доступ к адресу электронной почты

ID: ***************  <- (ID из настроек Яндекс.Паспорта)
Пароль: ***********  <- (Секрет из настроек Яндекс.Паспорта)

Callback URL: https://social.yandex.net/broker/redirect
Время жизни токена: Не менее, чем 1 год
Дата создания: 6/12/2020
 ВНИМАНИЕ! На момент создания страницы неизвестно, будет ли при таком подключении самостоятельно обновляться токен.