Начиная с версии 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://адрес_вашего_сервера/wnam/yandex_auth

  • http://адрес_вашего_сервера/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-адреса скрываются за этими именами. IP-адреса или их подсеть необходимо вписать в ACL/правило. Данные правила следует постоянно поддерживать в актуальном состоянии.

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

6. Попытаться выполнить тестовый запрос. Для этого следует перейти по ссылке http://адрес_вашего_сервера/wnam/auth_test  и нажать кнопку "Auth in Yandex". Если все настроено корректно, пользователь будет отправлен на страницу авторизации Яндекса, а затем направлен на WNAM, предоставив данные авторизованного пользователя 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 совместима с любым "основным" методом авторизации WNAM (СМС, звонок, ваучер, гостиничная система). Для её включения необходимо лишь разместить дополнительную кнопку на странице любого существующего и используемого метода. Для этого в  разделе "Конфигурация" → "Гостевая авторизация" → "Конструкторе страниц" выбрать нужную страницу и в режиме редактирования включить установить флажок "Вход через Яндекс ID" и сохранить настройки..

8. Проверить работоспособность авторизации посредством аккаунта Яндекс ID. Для этого следует перейти в раздел "Пользователи" и выбрать в таблице пользователей абонента, успешно прошедшего регистрацию по Яндекс ID. Все полученные учетные данные абонента будут отображены в "Параметрах записи о пользователе":

  • No labels