2017-04-11 16 views
1

iOSアプリでTouch IDを正常に実装しました。しかし、ユーザーがTouch IDの試行に失敗した回数が多すぎる場合は、エラーのケースを処理しようとしています。ログイン後にtouchIDLockoutをリセットするにはどうすればよいですか?

ユーザはTouch IDダイアログを閉じてユーザ名/パスワードのテキストエントリを使用してログインさせることができますが、ログアウトして再びTouch IDを使用しようとすると、のエラーでlocalAuthContext.canEvaluatePolicy(LAPolicy.deviceOwnerAuthenticationWithBiometrics, error: &authError)がfalseを返します。

ユーザがユーザ名とパスワードで正常にログインした後でロックアウトをリセットするために使用できる機能がいくつありますか?

答えて

3

ロックアウトがOSによって強制されているようです。これはおそらく、ユーザーランドのアプリケーションがセキュリティポリシーを迂回することを防ぐためです(悪意のあるかどうか)。 Apple's iOS Security Guideから

(PG 7):

...The passcode can always be used instead of Touch ID, and it’s still required under the following circumstances:

• The device has just been turned on or restarted.

• The device hasn’t been unlocked for more than 48 hours.

• The passcode hasn’t been used to unlock the device in the last 156 hours (six and a half days) and Touch ID has not unlocked the device in the last 4 hours.

• The device has received a remote lock command.

After five unsuccessful attempts to match a fingerprint.

• When setting up or enrolling new fingers with Touch ID.

太字は私です。

タッチIDは、アプリの認証の便利な代替手段として提供されているようです。ユーザーを認証するフォールバック方法があるので、Touch IDの試行が5回失敗する前に利用することができます(Touch IDが利用できない場合はもちろんです)。

EDIT:

私は何touchIDLockout手段のためのいくつかのコンテキストを提供LAError.hファイル内のいくつかのドキュメントを見つけました。ロックアウトを引き起こす試行回数を明示的には示していませんが、現在はパスコードが必要であると記載されています。これはAppleのiOSセキュリティガイドの上記の情報と一致しています。

このデベロッパーが直面している情報に基づいて、いくつかの失敗したTouch IDの試行に起因するロックアウトのリセットは、開発者が行うことができないものだと私は結論づけます。

この追加情報が役立つことを願っています。

+0

これは便宜的な代替方法です。ログインページでTouch IDを有効にする前に、まずユーザー名とパスワードで正しく認証する必要があります。その後のログインには、Touch IDメソッドが提供されます。上記のあなたのリンクは、開発者の使用ではなく、デバイスのOSのロックを解除することを扱うため、一種のものではありません。 –

+0

ロックアウトは、電話機自体をロックし、パスコードでロック解除することでリセットできます(OSレベルのタッチIDも無効になるため)。 –

関連する問題