Профиль конфигурации iOS VPN по требованию работает на iOS8, но не на iOS9 dev beta
У меня есть профиль конфигурации iOS с настроенным IPSec VPN. Опция OnDemand отлично работает на iOS8.
При тестировании профиля на iOS9 (подготовка его к следующему выпуску) я столкнулся с проблемой конфигурации OnDemand. Он просто не подключается, когда я пытаюсь получить доступ к некоторым доменам на сафари. Подключение к VPN вручную работает
это часть по требованию моего mobileconfig:
<key>IPSec</key>
<dict>
<key>AuthenticationMethod</key>
<string>Certificate</string>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
<string>duckduckgo.com</string>
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
<key>RequiredURLStringProbe</key>
<string>https://vpn.test.mydomain.com</string>
</dict>
</array>
</dict>
</array>
....
....
После того, как я попробовал множество настроек для iOS9, мне также удалось настроить VPN для подключения к OnDemand всегда, без каких-либо действий, кроме установки профиля, но это не то поведение, которое я искал.
Это конфигурация для разрешения по требованию всегда:
<key>IPSec</key>
<dict>
<key>AuthenticationMethod</key>
<string>Certificate</string>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>Connect</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
<string>duckduckgo.com</string>
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
<key>RequiredURLStringProbe</key>
<string>https://vpn.test.mydomain.com<</string>
</dict>
</array>
</dict>
</array>
Я думаю, это потому, что значение "connect" для ключа "action" не проверяет ActionParameters, а просто автоматически подключается к VPN-серверу.
Я надеюсь, что мне не хватает какой-то небольшой новой функции, которую Apple еще не обновляла в своих официальных документах для конфигураций.
Будем благодарны за любые предложения по исправлению профиля для iOS9. Благодарю.
2 ответа
После долгих исследований я нашел конфигурацию, которая позволяет функции ondemand работать на iOS9. Это тот, который работает для меня:
обратите внимание на ключ RequiredURLStringProbe. Это должен быть URL, который недоступен за пределами сети VPN.
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>IPSec</key>
<dict>
<key>AuthenticationMethod</key>
<string>Certificate</string>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
anyDomainForOnDemand.com
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
<key>RequiredURLStringProbe</key>
<string>https://a.url.accecable.only.from.vpn</string>
</dict>
</array>
</dict>
</array>
....
....
....
iOS 9 и onDemand не работает. То, что раньше работало для iOS 8, НЕ работает для iOS 9, хотя в примечаниях к выпуску об этом не упоминается.
Я бы посоветовал вам зарегистрироваться в качестве разработчика, чтобы получить доступ к 9.1