1

私はAndroidアプリを開発しています。認証の場合、ユーザーはユーザー名とパスワードを入力する必要があり、サーバーは期限切れの認証トークンを返します。Androidでクレデンシャルを保存する安全な方法

現在、トークンは保存していますが、資格情報は保存していません。トークン認証が失敗したときに、ユーザーが資格情報を再度入力することなく、バックグラウンドで保存された資格情報を使用してユーザーを再ログインできるように、資格情報をローカルに保存するのが最も安全な方法です。

私はSharedPreferencesを使用してデータを保存しています。しかし、彼らは本当に安全ですか?この目的でAccountManagerを使用できますか?

+0

SharedPreferencesは確かに安全であるとみなすべきではありません。 – tyczj

+1

この記事を読む、受け入れられる答えは、別のstackoverflowの答えに従って、Googleのアンドロイドデベロッパーからの技術リードです。 https://stackoverflow.com/questions/785973/what-is-the-most-appropriate-way-to-store-user-settings-in-android-application/786588#786588 – Jimmy

答えて

0

トークンが期限切れになったときに自動的にユーザーに再度ログインすると、あまり安全ではないというバックグラウンドサービスがあります。

話している時間が長くなることはできませんか?資格情報を保存して定期的にログインしようとすると、あまり安全ではありません。

+0

私は期限切れの時間を変更すべきではありませんサービスは他の人にも使われているからです。トークンの有効期限を延長しても、私はトークンをどこかに保存する必要があります。だから私は、ユーザー名とパスワードを確保することを心配している場合、私は今も長い期間有効なトークンを確保することについて心配する必要があります。間違いなく私が探している答えではありません。とにかくおかげです。 –

+0

可能なプロセスは、外出時にトークンを再発行することです。まず、古いトークンを検証し、ユーザーがまだ存在するかどうか、またはアクセスが取り消されていないか、またはアプリケーションに合ったものがあるかどうかを確認します。次に、満了日が更新された新しいトークンを発行します。すすぎ、繰り返します。これをやって、再発行を扱うクラスを持つバックグラウンドサービスはおそらくあなたが探しているものでしょう。資格情報を保存する必要はなく、ユーザーは安全です。 – Swatarianess

+0

もう一度これがセキュリティに関する私の懸念を解決する方法はわかりません。あなたが言っているのは、もし誰かのトークンにアクセスできたら、サーバーは新しいトークンを取得し続けることができます。なぜなら、サーバーは認証なしで新しいトークンを返すからです。 –

関連する問題