Представьте, что вы приходите на работу, включаете ноутбук, подключаетесь к Wi-Fi — и вас сразу узнают. Никаких логинов, паролей, лишних кликов. Так работает технология единого входа (Single Sign-On, или SSO) , которая позволяет использовать одни и те же учетные данные для разных сервисов.

Однако не все системы поддерживают одинаковые протоколы аутентификации. Например, Wi-Fi сети часто используют стандарт RADIUS , тогда как SSO может работать через OAuth или SAML . Чтобы всё это взаимодействовало, нужно провести правильную интеграцию.

В этой статье мы простым языком объясним:

  • Что такое OAuth и SAML
  • Как они используются в SSO
  • Почему их сложно применить напрямую в Wi-Fi
  • Как интегрировать их с RADIUS через промежуточный сервер
  • Примеры схем и диаграмм для наглядности

1. Что такое SSO?

Единый вход (SSO) — это система, которая позволяет пользователю войти один раз и получить доступ ко всем ресурсам без повторного ввода логина и пароля.

Пример:

вы вошли в свой аккаунт Google, и теперь можете заходить в Gmail, Google Drive, YouTube и другие сервисы, не вводя снова пароль.


2. OAuth и SAML: два популярных протокола SSO

OAuth

OAuth — это протокол, который позволяет одной системе получать ограниченный доступ к ресурсам другой системы от имени пользователя, без передачи пароля.

Например:

Вы нажимаете «Войти через Google» на стороннем сайте — сайт получает разрешение на доступ к вашему профилю Google, но не видит вашего пароля.

OAuth часто используется в мобильных приложениях и API.

SAML

SAML (Security Assertion Markup Language) — это XML-протокол, который обменивается информацией о подлинности пользователя между системами.

Например:

Ваша компания использует Microsoft Azure AD как центральный каталог. Когда вы пытаетесь зайти в Salesforce, он запрашивает у Azure AD информацию: «Это действительно сотрудник компании?» Azure AD отвечает: «Да».

SAML чаще используется в корпоративных средах.


3. А как подключить это к Wi-Fi?

Теперь интересный момент: большинство точек доступа Wi-Fi (AP) и контроллеров Wi-Fi используют протокол RADIUS для аутентификации.

А RADIUS — старый добрый протокол, который понимает только логин/пароль, CHAP, PAP и т.п. Он не знает , что такое OAuth или SAML.

Чтобы связать эти миры, нужен промежуточный сервер , который будет «переводчиком» между SSO и RADIUS.


4. Как это работает: общая схема

Объяснение:

  1. Пользователь подключается к Wi-Fi
  2. Точка доступа отправляет запрос на проверку логина/пароля через RADIUS
  3. RADIUS-сервер перенаправляет запрос к IDP (Identity Provider), где хранятся данные SSO
  4. IDP проверяет учётные данные через OAuth/SAML
  5. Результат возвращается обратно по цепочке

5. Подробнее о процессе аутентификации

Шаг 1: Пользователь подключается к Wi-Fi

Пользователь выбирает SSID, вводит логин и пароль (или автоматически авторизуется, если есть сертификат).

Шаг 2: Запрос RADIUS

Wi-Fi контроллер отправляет запрос на RADIUS-сервер:

Username: user@company.com
Password: *********

Шаг 3: RADIUS-сервер обращается к IDP

RADIUS-сервер использует специальный плагин или шлюз, чтобы преобразовать запрос в формат SAML или OAuth.

Пример:

<samlp:AuthnRequest …>
<saml:Issuer>https://radius.company.com</saml:Issuer>
</samlp:AuthnRequest>

Шаг 4: IDP проверяет учётные данные

IDP (например, Azure AD) проверяет, существует ли такой пользователь и действителен ли его пароль.

Шаг 5: Ответ IDP → RADIUS → Wi-Fi

Если всё верно, IDP отвечает:

<samlp:Response …>
<saml:Assertion>…</saml:Assertion>
</samlp:Response>

RADIUS-сервер получает положительный ответ и отправляет в Wi-Fi:

Access-Accept

 

Пользователь получает доступ к сети.


6. Какие компоненты нужны?

Компонент
Описание
SSID Wi-Fi
Точка входа в сеть
Wi-Fi контроллер
Передаёт запросы на RADIUS
RADIUS-сервер
Получает запросы от контроллера и проверяет через IDP
IDP (Identity Provider)
Сервер SSO (например, Azure AD, Okta, OneLogin)
Шлюз OAuth/SAML-RADIUS
Модуль, который переводит протоколы

7. Настройка RADIUS-сервера для работы с SAML/OAuth

Рассмотрим пример настройки через FreeRADIUS + Python скрипт + Azure AD .

Шаг 1: Установка FreeRADIUS

Устанавливаем сервер:

sudo apt install freeradius

Шаг 2: Настройка модулей

Добавляем в конфиг /etc/freeradius/3.0/sites-enabled/default вызов внешнего скрипта:

exec saml_auth {
wait = yes
input_pairs = request
shell_escape = yes
program = «/usr/local/bin/saml_radius.py %{User-Name} %{User-Password}»
}

Шаг 3: Создание скрипта saml_radius.py

import sys
import requests

def authenticate(user, password):
# Здесь логика вызова Azure AD через OAuth или SAML
response = requests.post(«https://login.microsoftonline.com/…», data={
«username»: user,
«password»: password
})
return response.status_code == 200

if __name__ == «__main__»:
user = sys.argv[1]
pwd = sys.argv[2]
if authenticate(user, pwd):
print(«OK»)
else:
print(«REJECT»)

Шаг 4: Перезапуск RADIUS

sudo systemctl restart freeradius

Теперь RADIUS может проверять логины через Azure AD!


8. Возможные проблемы и как их решить

Проблема
Причина
Решение
Не подключается к Wi-Fi
Неверные учетные данные
Проверить ввод логина/пароля
RADIUS не отвечает
Нет связи с IDP
Проверить интернет, прокси, firewall
IDP не принимает запрос
Неправильная конфигурация SAML
Проверить метаданные SAML, URL, сертификаты
Частые ошибки аутентификации
Проблемы с сертификатами
Обновить сертификаты IDP и RADIUS

9. Безопасность: что важно учесть

  • Используйте шифрование : TLS между RADIUS и IDP
  • Сертификаты : Используйте доверенные сертификаты для связи
  • Мониторинг : Логируйте попытки входа
  • Ограничения : Убедитесь, что пользователи могут подключаться только к разрешенным SSID

10. Где применяется такая интеграция?

  • В офисах с централизованным управлением доступом (например, Azure AD)
  • В университетах, где студенты подключаются к Wi-Fi через единый портал
  • В гостевых сетях, где используется соцсетевой вход
  • В гибридных облачных средах

11. Заключение

Интеграция OAuth и SAML с Wi-Fi через RADIUS — мощное решение, которое делает жизнь пользователей проще и безопаснее. Хотя изначально Wi-Fi и SSO говорят на разных «языках», промежуточный RADIUS-сервер с поддержкой SAML/OAuth становится отличным мостом между ними.

Главное — правильно настроить интеграцию, обеспечить безопасность и тестировать каждую часть системы.


12. Полезные ссылки