Как получить пароль пользователя во внутреннем туннеле из iOS

Я пытаюсь настроить службу freeradius, чтобы разрешить аутентификацию по https API. И у меня это работает для большинства устройств Android, даже мой Mac book pro работает. Однако, когда мы пытаемся использовать устройство iOS (iPad, iPhone), внутренний туннель не может получить поле User-Password.

поэтому текущая настройка EAP -> TTLS -> пользовательская аутентификация

Раздел ttls eap.conf

ttls {   
  default_eap_type = md5
  copy_request_to_tunnel = yes  
  use_tunneled_reply = yes
  virtual_server = "inner-tunnel"
}

внутренняя туннельная авторизация

authorize {
   ...
   update control {
            Auth-Type := `/usr/local/bin/admin_portal.py %{User-Name} '%{User-Password}' %{Calling-Station-Id}`,
            Fall-Through = Yes
    }
}

Когда я запускаю в режиме отладки, я получаю следующий вывод

expand: %{User-Name} -> [email protected]
expand: '%{User-Password}' -> ''
expand: %{Calling-Station-Id} -> 01-23-45-67-89-ab

Однако, когда я использую устройство, отличное от iOS, пароль заполняется.

Любая помощь будет оценена по достоинству. Спасибо.


person Ben Miller    schedule 19.04.2015    source источник


Ответы (1)


Вам нужен внутренний метод TTLS, который отправляет пароль в открытом виде. Наиболее распространенным методом является TTLS-PAP.

Если запрашивающая сторона аутентифицируется с помощью TTLS-PAP, проксируемый запрос (во внутренний туннель) будет содержать атрибут User-Password со значением, которое пользователь ввел (или кэшировал) запрашивающей стороной.

Ниже приведен пример настройки профиля с помощью Apple Configurator.

Пример настройки TTLS-PAP с помощью конфигуратора Apple

person Arran Cudbard-Bell    schedule 19.04.2015
comment
С iOS вы не можете выбрать метод фазы 2 (в Android я могу выбрать pap). Так нет ли способа с iOS получить пароль в чистом виде? - person Ben Miller; 19.04.2015
comment
Если вы не можете сделать это на устройстве, создайте mobileconfig либо с помощью приложения OSX Server, либо с помощью конфигуратора Apple. - person Arran Cudbard-Bell; 19.04.2015
comment
Это действительно решает проблему, но в настоящее время не представляется возможным для клиента. Спасибо за помощь. По умолчанию устройство отправляет ms-chap. Как только это будет включено, и я настрою метод sql, я смогу использовать метод sql для аутентификации. Это усложняет систему, так как мне нужно будет иметь свой http API, который пользователь регистрирует с синхронизацией с радиусом db, но это, по крайней мере, решение, которое не требует изменения пользовательского устройства. - person Ben Miller; 19.04.2015