Описание работы с API сервиса AUTH.AS по протоколу RADIUS
Для интеграции со сторонними сервисами, системами и веб-приложениями наш сервис предоставляет возможность воспользоваться Radius-протоколом для двухфакторной аутентификации пользователей. Обработка Radius-пакетов происходит по адресу console.auth.as. Рассмотрим набор параметров, которые необходимо передать в строке radius-пакета.
Техническое описание
В Radius-пакете необходимо передавать 2 обязательных параметра:
- Параметр User-Name: этим параметром необходимо передавать username пользователя системы auth.as, который позволяет однозначно идентифицировать пользователя. Формат: буквы a-z, цифры 0-9, символы - @ и .
- Параметр Password: есть 2 варианта передачи параметра Password: с паролем пользователя и без него.
- (пароль пользователя + одноразовый пароль). Помимо самой проверки одноразового пароля, предварительно будет выполнена попытка аутентификации пользователя в выбранной системе (локальной или по протоколу LDAP в Active Directory) по username и password. В случае успеха будет выполнена проверка одноразового пароля. Одноразовый пароль добавляется сразу после основного пароля учётной записи пользователя.
- (только одноразовый пароль). Происходит проверка только лишь одноразового пароля без аутентификации пользователя в системе.
Ответы сервера
Сервер возвращает 2 стандартных типа ответа, в зависимости от успешности проверок, описанных в предыдущем разделе этой инструкции. В случае успешной проверки учётной записи и одноразового пароля наш Radius-сервер возвращает стандартный ответ “Access-Accept”.
В перечисленных ниже случаях всегда будет возврат ответа “Access-Reject”.
- адрес, с которого пришёл пакет не найден в источниках;
- не переданы обязательные параметры;
- неправильный формат переданных параметров;
- не удалось найти пользователя по его username;
- пользователю не назначен токен;
- компания/домен/пользователь/токен (любая из сущностей) заблокирован(а);
- не удалось аутентифицировать пользователя в системе (если эта опция включена);
- передан неверный одноразовый пароль.
Пример использования с помощью radclient
Если в настройках Источника включена опция “Radius отправляет пароль”. Попробуем осуществить проверку одноразового пароля для пользователя firstname.lastname@domain.tld, передав неправильный пароль пользователя или одноразовый пароль:
echo "User-Name=firstname.lastname@domain.tld,Password=password" | radclient -n1 -p 1 console.auth.as auth secret1 -x
Ответ от сервера:
Received Access-Reject packet from home server 31.40.96.50 port 1812 with invalid Response Authenticator! (Shared secret is incorrect.)
Для верных логина и одноразового пароля:
Received response ID 153, code 2, length = 20