Face ID 在钥匙串中写入和读取值

Face ID write and read values from and into the keychain

我确实了解框架 KeychainAccess 中使用 Touch ID kSecAccessControlTouchIDAny 的访问是如何工作的,但我无法弄清楚如何使用 iOS 11 中的 Face ID 进行访问。我还没有找到解决它的任何文档(也许文档还没有出来?)。

所以我正在寻找 Whosebug 并询问:如何将使用 Face ID 保护的值写入钥匙串以及如何将它们复制回来?

一个简单的例子就好了。

看起来 Apple 已将 Face ID 支持添加到本地身份验证 API,但尚未添加 Keychain ACL。

我打算做的是使用本地身份验证来触发 Face ID 提示,然后如果成功,则直接访问钥匙串。不如我们为 Touch ID 提供的正确 KeyChain ACL API 安全,但这是迄今为止我想出的最佳解决方案。

https://developer.apple.com/documentation/localauthentication/localauthentication_constants?changes=latest_minor https://developer.apple.com/documentation/localauthentication/labiometrytype?changes=latest_minor

这似乎在 Xcode 9.1(自测试版起)中有效。

可在此处使用示例进行测试:

https://developer.apple.com/library/content/samplecode/KeychainTouchID/Introduction/Intro.html

尽管此示例尚未针对 Face ID 进行更新,但它似乎适用于存储受 Face ID 保护的钥匙串项目。

如前所述,这在 Xcode 9.0 GM 中不起作用。