4

フィンガープリントAPIを使用して、ユーザー名とパスワードを使用してユーザーを認証する必要があるアンドロイドアプリケーションをビルドします。フィンガープリントでアンドロイドキーストア経由でユーザーの資格情報(ユーザー名とパスワード)を取得する

ここで私は最も簡単な言葉で何をする必要があるのか​​理解しています。ログインに

  1. ユーザーはユーザー名とパスワードを入力したと が正常にバックエンドで認証した後、私は生成しandroidkeystoreにそれらの資格情報を使用して 特定のキーストアを格納します。次回ログイン時に

  2. 、ユーザーが正常に 指紋を経由して認証する場合、 からAndroidのキーストアを資格情報(ユーザー名とパスワード)を取得し、 これらの資格情報を使用してバックエンドでユーザーを認証します。

私が続いている: http://www.techotopia.com/index.php/An_Android_Fingerprint_Authentication_Tutorial

をこれがデバイスとユーザを認証するための指紋APIを使用する方法の良い例を示します。しかし、バックエンドでユーザーを認証できるように、資格情報を戻すにはどうすればよいですか?

私がしたいことのためのステップ、提案、または詳細な例はありますか?

ありがとうございました。

+0

この記事はあなたに役立つかもしれません:https://www.sitepoint.com/securing-your-android-apps-with-the-fingerprint-api/ –

答えて

1

あなたの提案されたソリューションでは、バックエンドはユーザがログインするたびにユーザ名+パスワードを受け取ります。これはあなたのアプリがユーザのユーザ名とパスワードを保存しなければならないことを意味します。それを避けるのは賢明かもしれません。たとえば、パスワードが後で変更された場合、アプリはログインできません。また、特別な注意を怠ると、adb backupを使用してUSBデバッグでユーザー名とパスワードがバックアップおよび/または抽出されることがあります。

代替の解決策は、クライアントが秘密鍵の使用ごとにユーザー認証(指紋認証)を必要とするAndroidキーストアのキーペアを生成することです。バックエンドは、ユーザのアカウントとして認証するための公開鍵を登録する操作を提供する。登録操作には、公開鍵、ユーザー名、およびパスワードが必要です。 username + passwordが確認された場合、公開鍵はそのアカウントに登録されます。その後、ログイン操作は、対応する秘密鍵を使用して、クライアントがバックエンドによって生成されたチャレンジ/ノンスを使用して署名することにより、クライアントの認証をサポートするように拡張されます。署名が確認された場合、バックエンドは元々username + passwordを使用して公開鍵を登録したのと同じクライアントであるとみなします。

関連する問題