【问题标题】:iOS VPN On Demand: Only outside companyiOS VPN On Demand:仅限公司外部
【发布时间】:2016-07-07 00:39:44
【问题描述】:

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

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

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

  • 是否可以告诉设备仅在公司网络之外时才连接到 VPN?

谢谢。

【问题讨论】:

    标签: ios vpn


    【解决方案1】:

    如果您连接的 Wi-Fi 的 SSID 与您公司网络上使用的 SSID 匹配,您可以添加 On Demand 规则以断开连接。

    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>
    

    【讨论】:

    • 这是一个 Web 应用程序,我在谈论通过苹果配置器配置文件可用于域的“按需 vpn”功能。它允许我们添加将触发 VPN 连接的特定域,但是我不知道如何才能使其仅在公司外部发生..
    • 对不起,我以为你在谈论 iOS SDK 中的 NetworkExtension 框架。无论如何,也可以使用配置文件来做到这一点。您可以添加与 SSID 相同的断开连接规则,如文档中所述:developer.apple.com/library/ios/featuredarticles/…
    【解决方案2】:

    另一种选择是使用 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>
    

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

    来自 Apple 的 MDM 技术参考:

    URLStringProbe。可选的。用于探测可达性的服务器。不支持重定向。 URL 应该指向受信任的 HTTPS 服务器。设备发送 GET 请求以验证服务器是否可达。

    Apple MDM Technical reference

    【讨论】:

      猜你喜欢
      • 2015-09-11
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多