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...导致网络上不必要的冗余。
- 是否可以告诉设备仅在公司网络外部连接到 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
Apple 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.
我正在阅读基于最新版本 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...导致网络上不必要的冗余。
- 是否可以告诉设备仅在公司网络外部连接到 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
Apple 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.