Профиль конфигурации 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

Другие вопросы по тегам