iPad 上不再弹出密码提示:证书还是保存的登录
保存的密码和设备证书消除提示的方式不同。比较两者,再分别决定什么决定隧道何时开启。
“别再问我要密码”实际上把三项需求打包进了一个抱怨,而 iPad 上的部署在不同环节分别回答它们。提示来自身份验证,时机来自激活,覆盖面来自强制执行。先选能消除提示的凭据,再单独决定什么决定隧道何时开启。把这两个决定混在一起,正是人们最终得到“保存了密码却仍在等待点按”的配置文件的原因。
| Saved or shared secret | Device certificate | |
|---|---|---|
| What the user sees | no prompt while the credential stays valid | no prompt, no password to rotate |
| What the admin manages | the secret in the profile and its distribution | enrollment, expiry and revocation per device |
| Typical failure | gateway demands a second factor | expired or revoked certificate |
一个抱怨背后藏着两个问题
iPad 上的原生 IKEv2 配置可以引用密码或证书,AuthenticationMethod 键决定适用哪一种,而 PayloadCertificateUUID 指定提供身份的凭据。网关会接受哪一种属于服务器策略问题,而不是客户端偏好。所以第一件要弄清的事是 VPN 服务允许什么,因为 iPad 无法协商到对端拒绝的方法。
只有在此之后,讨论隧道何时激活才有意义,而那是完全不同的一组配置文件键。
第一种选择:iPad 可以重复使用的凭据
存储的账户密码或共享密钥能满足对用户或组做身份验证的网关,并在密钥有效期间消除提示。它的弱点是生命周期:密钥放在配置文件里,多台设备可能共用,轮换意味着要动每一个包含它的配置文件。如果服务还要求一次性因素或交互式批准,任何本地设置都无法把该策略变成无人值守的登录。
一个应用保存的密码也不会自动供另一个 VPN 实现使用,这就是同一个账户在某个客户端里不再提示、在另一个客户端里每次都提示的原因。
第二种选择:带自己私钥的设备证书
证书以更强的方式消除提示,因为 iPad 证明自己持有私钥,而不是重放一个密钥。这要求 叶证书及其密钥通过批准的注册途径送达,并要求网关接受对该连接的证书身份验证。只导入 CA 证书只会给设备信任材料,别的什么也没有,这是一种常见而安静的失败。
代价是生命周期工作。每台 iPad 都有自己的身份,这样丢失的设备可以在不重发整个设备群的情况下吊销,而到期日期会成为真实的运维事件。悄悄过期的证书,看起来和当天早上的 VPN 中断一模一样。
按网关接受什么来选,而不是按偏好来选
向 VPN 管理员问两个问题:该服务对这种客户端类型接受哪些身份验证方式,以及其中是否有需要交互输入的方式。如果答案只有证书,就规划注册和续期。如果答案是密码加第二因素,就接受提示属于策略,不要再把它当成设备故障。如果两者都被接受,受管设备群在生命周期上靠证书取胜,而少量设备在部署工作量上靠密码取胜。
把选定的方式连同配置文件标识写入部署记录,否则下一个接手配置文件的人会选另一种。
然后把激活与身份验证分开
VPN On Demand 在配置的条件匹配时打开隧道,无论是 DNS 域名、接口类型还是已加入的网络,Apple 将其记录为不需要用户交互。这适合那些只应在有东西请求时才可访问的私有资源。它与管理型 Always On 不同,后者让覆盖范围持续被强制,并带有自己的监督和配置文件要求。
可用的凭据对这两种情况都没有帮助。许多 iPad 持有完全正常的证书,却仍然在等待手动点按,因为按需规则从未触发过。
以管理员可以执行的形式交付需求:这台 iPad 应当在不重复用户输入的情况下,使用这种凭据类型,并在这套激活与中断规则下访问这些资源。如果当前服务无法满足这些条件,反复出现的提示就是按设计运行的政策。