iOS VPN On Demand:仅限公司外部

iOS VPN On Demand: Only outside company

我正在阅读基于最新版本 iOS 构建的 VPN On Demand 功能。

这里的问题是:我们 运行 一个 VPN 来访问在像 salexxx.company.net 这样的子域上内部托管的 WebApp,该子域具有指向您网络内部 IP 的 A 记录(例如。 172.20.1.100)。为了让某人访问 WebApp,他需要 a) 直接连接到我们的网络,或 b) 连接到 VPN。

我们对让来自用户设备的每个请求都通过 VPN(流量很大)没有兴趣。 iOS VPN On Demand 似乎解决了这个问题,但是当我在公司办公室并尝试访问域时,phone 也会触发 VPN...导致网络上不必要的冗余。

谢谢。

如果您连接的 Wi-Fi 的 SSID 与您公司网络上使用的相匹配,您可以添加一个按需规则来断开连接。

NEOnDemandRuleDisconnect *disconnectOnCompanyNetworkRule = [[NEOnDemandRuleDisconnect alloc] init];
disconnectOnCompanyNetworkRule.SSIDMatch = @[@"company_network_name"];

如果您使用的是配置描述文件,您还可以按照文档中的说明将该规则添加到您的描述文件中:https://developer.apple.com/library/ios/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010206-CH1-SW36

A​​pple Configurator 应用程序无法添加这些规则,您需要使用某些文本编辑器打开配置文件以添加这些规则。你想添加这样的东西:

<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
    <dict>
        <key>Action</key>
        <string>Disconnect</string>
        <key>InterfaceTypeMatch</key>
        <string>WiFi</string>
        <key>SSIDMatch</key>
        <array>
            <string>Company WiFi</string>
        </array>
    </dict>
    <dict>
        <key>Action</key>
        <string>Connect</string>                  
        <key>InterfaceTypeMatch</key>
        <string>WiFi</string>
    </dict>
    <dict>
        <key>Action</key>
        <string>Connect</string>
        <key>InterfaceTypeMatch</key>
        <string>Cellular</string>
    </dict>
</array>

另一种方法是使用 URLStringProbe

这使用标准的 https get 来确定您是否已经在您公司的网络上

            <key>OnDemandRules</key>
            <array>
                <dict>
                    <key>Action</key>
                    <string>Ignore</string>
                    <key>URLStringProbe</key>
                    <string>https://intwebsite.yourcompany.com</string>
                </dict>
            </array>

值得指出的是,您引用的服务器应该没有重定向,并且应该 return 200。首选 https,但您也可以使用 http。

来自 Apple 的 MDM 技术参考:

URLStringProbe. Optional. A server to probe for reachability. Redirection is not supported. The URL should be to a trusted HTTPS server. The device sends a GET request to verify that the server is reachable.

Apple MDM Technical reference