Сервер WNAM QoW поддерживает аутентификацию пользователей при помощи oauth2.
В проекте использована платформа SpringSecurity, максимально задействованы стандартные для нее названия параметров и настроек.
Чтобы позволить пользователям авторизоваться при помощи сторонних серверов, нужно задать ряд параметров, как на стороне QoW, так и на стороне сервера аутентификации/авторизации.
Типовые настройки на примере стенда QoW (https://dev.wifisensor.pro/) с авторизацией при помощи YandexId
При добавлении в настройки QoW провайдера oauth2-авторизации на странице логина появятся ссылки на сконфигурированные серверы для входа при помощи SSO (single sign on).

На стороне сервера аутентификации настроено приложение, для которого заданы корректные URL-ы и разрешен доступ к email клиента

Сервер Yandex, выдаст приложению ClientId и Client Secret для аутентификации самого приложения (сервер аутентификации должен знать, кто пересылает к нему пользователя для авторизации).
Также нужно задать URL-ы на сервере QoW, которые будут использоваться в процессе SSO при обмене данными между серверами и перенаправлении браузера пользователя.
Со стороны QoW нужно указать соответствующие параметры провайдера SSO (в файле application.properties).
- Идентификатор провайдера (spring.security.oauth2.client.registration.yandex.provider=yandex)
- ClientId приложения, выданный сервером аутентификации (spring.security.oauth2.client.registration.yandex.client-id=client_id_configured_on_authorization_server)
- Client Secret приложения, выданный сервером аутентификации (spring.security.oauth2.client.registration.yandex.client-secret=client_secret_configured_on_authorization_server)
- URL для перенаправления пользователя SSO в процессе авторизации, совпадающий с настройкой на стороне приложения YandexId (spring.security.oauth2.client.registration.yandex.redirect-uri=https://dev.wifisensor.pro/login/oauth2/code/yandex)
- Тип oauth2 flow, поддерживаемый в процессе SSO QoW (константа, требует соответствующего кода, модификации сейчас не подлежит (spring.security.oauth2.client.registration.yandex.authorization-grant-type=authorization_code)
- Название SSO провайдера, отображаемое на странице логина (spring.security.oauth2.client.registration.yandex.client-name=Yandex)
- Опциональный параметр, обычно email пользователя входит в набор данных пользователя, который oauth-сервер отдает приложениям (
##scope is optional - we use email to identify QoW user
##spring.security.oauth2.client.registration.yandex.scope=email ) - URL сервера аутентификации/авторизации (spring.security.oauth2.client.provider.yandex.authorization-uri=https://oauth.yandex.ru/authorize)
- URL сервера аутентификации для получения токенов доступа (spring.security.oauth2.client.provider.yandex.token-uri=https://oauth.yandex.ru/token)
- Сервер QoW при попытке найти "своего" настроенного пользователя в собственной БД может использовать login или email пользователя QoW, можно указать возвращаемый атрибут oauth-пользователя для идентификации (spring.security.oauth2.client.provider.yandex.user-name-attribute=default_email)
- URL сервера аутентификации для получения данных пользователя (spring.security.oauth2.client.provider.yandex.user-info-uri=https://login.yandex.ru/info)
Код сервера QoW постоянно и активно дорабатывается, перечисленные параметры актуальны на ноябрь 2025, возможно добавится поддержка новых конфигураций SSO и новые параметры и настройки сервера.