在 iOS 14 中,Apple 允许用户使用 Face ID 和 Touch ID 通过 Web 身份验证 API (WebAuthN) 进行身份验证。这很棒 - 但有一个主要缺点:似乎无法删除创建的凭据。(有关更多信息,请参阅WWDC2020 演示或者Apple 发行说明。
在里面Web 身份验证 API 规范,W3C 在可能性 #3 下列出了我所谈论的案例 - 用户采用特定于身份验证器的方法来删除凭证:
- 可能性#3——用户从身份验证器中删除凭证。
- 用户采用特定于身份验证器的方法(例如,设备设置 UI)从其身份验证器中删除凭证。
- 从此时起,此凭证将不会出现在任何选择提示中,并且无法用它生成任何断言。
- 一段时间后,由于不活动,服务器取消了此凭证的注册。
正如在类似问题中问到的那样,已确认在 Windows 10 上可以做到这一点,使用一种可行的但复杂的方法来删除存储的公钥凭证。与上述问题类似,我认为在 iOS/MacOS 上创建凭证后没有简单的方法可以删除凭证。因为 MacOS 和 iOS 比 Windows 更严格,所以我并不希望这是可能的 - 但也许在某个地方有一个隐藏的方法。
照这样说,
- 一旦创建,是否可以删除(不通过将其从“可接受凭证”对象中删除来隐藏)iOS 或 MacOS(最好是两者)上的公钥凭证客户端,以及
- 如果是,怎么办?
答案1
如果您在 Safari 的设置中单击“清除历史记录和网站数据”(删除 cookie、html5 存储和历史记录),它似乎还会删除您的所有凭据。这非常奇怪,并且基本上使整个实施变得毫无用处,就像您想要删除 cookie 一样。