3

ユーザーログイン用のアプリにタッチ ID を統合する作業を行っています。将来タッチで使用するユーザー名とパスワードを保存するので、localAuthenticate が機能しないことがわかり、新しい ACL を使用してキーチェーンにアクセスする必要があります。

ACL を使用してキーチェーンを読み書きするためのすべてのコードを取得しました。しかし、SecAccessControlCreateWithFlags(...) の SecAccessControlCreateFlags のオプション「kSecAccessControlUserPresence」が 1 つしか表示されません。これにより、ユーザーがタッチ ID を使用したくない場合に、Apple ドキュメントごとに PIN コードにフォールバックできます。とにかく、タッチ ID を使用してこれらのキーへのアクセスのみを許可する方法はありますか?それが失敗した場合、ユーザーは資格情報を手動で入力する必要がありますか?

他の選択肢がありますが、それらを避けようとしています:

  • オプション A: LocalAuthenticate を使用し、userdefults で資格情報の暗号化を行いますが、キーを保存する場所を把握する必要がありますか? 何か案は?

  • オプション B: ACL とキー チェーンを使用し続けますが、ユーザーが PIN コードまたはタッチ ID を使用したかどうかを確認する必要があります。彼らがタッチIDを使用した場合は、キーチェーンから取得した情報を使用してログインし、ピンを使用した場合はLocalAuthenticateで再度尋ねます. キャンセルされた場合はログインしません。タッチ ID で確認された場合は、キーチェーンの資格情報を使用してログインします。

更新: PIN が必要ない理由を尋ねられた場合に備えて、私たちの弁護士は、パスワードを保存するキー チェーンにアクセスする方法として、4 桁の PIN コードの概念を受け入れませんでした。

4

1 に答える 1

2

これは iOS 9 で利用できるようになりました。

  • kSecAccessControlTouchIDCurrentSet- 「現在登録されている指のセットからのタッチ ID。タッチ ID が使用可能で、少なくとも 1 本の指が登録されている必要があります。指が追加または削除されると、アイテムは無効になります。」
  • kSecAccessControlTouchIDAny- 「Touch ID (任意の指)。Touch ID が利用可能であり、少なくとも 1 本の指が登録されている必要があります。指が追加または削除された場合でも、Touch ID によってアイテムにアクセスできます」。
于 2016-01-13T09:15:52.630 に答える