4.4. Пакет Access-Challenge
Если сервер RADIUS хочет отправить пользователю запрос на ввод дополнительной информации (challenge), требующий отклика, сервер RADIUS должен ответить на запрос Access-Request передачей пакета с Code = 11 (Access-Challenge).
Необязательное поле атрибутов такого пакета может содержать один или несколько атрибутов Reply-Message и один атрибут State. Допускается также включение в отклик атрибутов Vendor-Specific, Idle-Timeout, Session-Timeout и Proxy-State. Остальные атрибуты, описанные в данной спецификации, не должны включаться в пакеты Access-Challenge.
При получении пакета Access-Challenge значение поля Identifier сравнивается с идентификатором в ожидающем запросе Access-Request. Кроме того поле Response Authenticator должно содержать корректный отклик для ожидающего Access-Request. Некорректные пакеты отбрасываются без уведомления.
Если сервер NAS не поддерживает режим challenge/response, он должен трактовать пакеты Access-Challenge как Access-Reject.
Если NAS поддерживает режим challenge/response, получение корректного пакета Access-Challenge показывает, что следует передать новый пакет Access-Request. Сервер NAS может передавать пользователю текстовое сообщение (если оно есть) и тогда запрашивать у пользователя отклик. После получения отклика передается исходный запрос Access-Request с новым идентификатором и полем Request Authenticator, а также с заменой значения атрибута User-Password на введенную пользователем информацию (в шифрованном виде) и включением атрибута State из пакета Access-Challenge (если этот атрибут присутствует). В пакете Access-Request может присутствовать не более 1 атрибута State.
Сервер NAS, поддерживающий протокол PAP, может пересылать Reply-Message вызывающему клиенту и принимать от того отклик PAP, который может использоваться как введенный пользователем отклик. Если сервер NAS не может это сделать, он должен трактовать пакет Access-Challenge как Access-Reject.
Формат пакета Access-Challenge показан ниже. Поля пакета передаются слева направо и сверху вниз.
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Code | Identifier | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Response Authenticator | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attributes ... +-+-+-+-+-+-+-+-+-+-+-+-+-
Code
11
Identifier
Поле Identifier содержит копию значения одноименного поля из пакета Access-Request, с которым связан данный отклик.
Response Authenticator
Значение поля Response Authenticator вычисляется на основе полей запроса Access-Request, как описано выше.
Attributes
Необязательное поле атрибутов имеет переменную длину.