You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Начиная с версии 1.6.3231 WNAM поддерживает идентификацию (авторизацию) пользователей Wi-Fi при помощи учетной записи (идентификатора) Яндекс. 

Внимание! Данный способ идентификации формально не входит в список, обозначенный в требованиях законодательства. Однако ваша организация на свой страх и риск может допустить применение данного способа.

Авторизация через Яндекс ID функционирует так же, как и с любой другой, использующей OAuth2 метод системой, например порталом "Госуслуги". Общая схема взаимодействия такова:

  • Администратор системы WNAM получает все необходимые токены доступа к Яндекс ID.
  • Администратор системы WNAM настраивает безусловный доступ к серверам Яндекс ID для абонентов на стадии "до авторизации".
  • Подключившийся не идентифицированный Wi-Fi абонент переводится на сервера Яндекс ID для проведения авторизации (логин/пароль/СМС/QR код и т.п.).
  • По завершении авторизации сессия абонента возвращается на WNAM для показа реклами и т.п., и последующего допуска в Интернет.
  • Параллельно при этом WNAM, пользуясь переданным токеном, запрашивает у серверов Яндекс данные по пользователю. 

Для настройки этого метода вам необходимо выполнить следующие шаги.

1. Создание "приложения". Перейдите на https://oauth.yandex.ru, авторизуйтесь, нажмите на "+ создать приложение". Укажите название, доступ к трем параметрам:

•  Доступ к дате рождения
•  Доступ к адресу электронной почты
•  Доступ к логину, имени и фамилии, полу

2. Укажите адрес возврата в WNAM в виде ссылок /wnam/yandex_auth и /cp/social/yandex

  • http://172.16.130.5:8080/wnam/yandex_auth

  • http://172.16.130.5:8080/cp/social/yandex

    (здесь вы должны указать полные имена или адреса сервера WNAM, с указанием портов, так чтобы пользователь Wi-Fi имел к ним доступ; ориентируйтесь на тот формат, который у вас применяется при настройке редиректа на портал WNAM).

3. Получите ClientID и Client secret:

4. В настройке вашего хотспота (роутер Микротик, параметр free-rule, ACL на контроллере БЛВС) разрешите доступ к ресурсам серверов Яндекс, доступным до окончания авторизации абонента, там где вы разрешали его достуцп до самого сервера WNAM. Вы должны добавить доступы до следующих ресурсов:

  • oauth.yandex.ru порт 443
  • passport.yandex.ru порт 443

Например:

Если ваш хотспот не умеет работать с DNS-именами, значит вам придется вручную выяснить, какие IP адреса скрываются за этими именами у вас, вписать в ACL/правило эти адреса или их подсеть, и поддерживать эти правила актуальными в дальнейшем.

5. Настройте интеграцию WNAM и Яндекс ID. Перейдите в раздел "Конфигурация - Внешние OAuth системы", вкладка "Yandex", и укажите в ней ключи приложения и URL возврата:

6. Попробуйте выполнить тестовый запрос, для чего перейдите по ссылке http://адрес_вашего_сервера/wnam/auth_test , и нажмите там "Auth in Yandex". Если все настроено верно, вас отправит на страницу авторизации Яндекса, а затем вернет на WNAM, показав данные авторизованного пользователя.


Также в лог-файле wnam.log вы увидите:
17:19:06.408 DEBUG [AuthController.java:358] - Request yandex code 4769692
17:19:06.597 DEBUG [YandexService.java:140] - Yandex token Token{accessToken='...', expires=31536000, tokenType='bearer', refreshToken='1:...', error='null', errorDescription='null'}
17:19:06.663 INFO [YandexService.java:152] - Response: {"id": "...", "login": "...", "client_id": "...", "display_name": "...", "real_name": "...", "first_name": "...", "last_name": "...", "sex": null, "default_email": "...", "emails": ["..."], "birthday": "...", "psuid": "..."}
17:19:06.700 DEBUG [YandexService.java:156] - Response: YaUser{name='...', sex='null', realName='...', id=..., bdate='...', email='...'}

Если тестовый запрос успешен, можно настраивать гостевую авторизацию.

7. Авторизация через Яндекс ID совместима с любым "основным" методом авторизации (СМС, звонок, ваучер, гостиничная система). Для её включения необходимо лишь разместить дополнительную кнопку на странице любого существующего и используемого у вас метода. Для этого в "Конструкторе страниц" нужной страницы необходимо включить один чекбокс. Больше ничего настраивать не требуется.

  • No labels