185 votes

Android : Stocker le nom d'utilisateur et le mot de passe ?

Si je veux stocker le nom d'utilisateur et le mot de passe à utiliser dans une application Android, quelle est la meilleure façon de le faire ? Faut-il passer par l'écran des préférences (mais que se passe-t-il si l'utilisateur rate cette étape ?), ou faire apparaître une boîte de dialogue et demander à l'utilisateur les informations d'identification ? Dans ce cas, je dois maintenir l'état de l'application. Comment dois-je m'y prendre ?

124voto

elevine Points 7208

La plupart des applications Android et iPhone que j'ai vues utilisent un écran initial ou une boîte de dialogue pour demander des informations d'identification. Je pense qu'il est fastidieux pour l'utilisateur de devoir ressaisir son nom/mot de passe souvent, donc stocker ces informations est logique du point de vue de la convivialité.

L'avis de la ( Guide de développement Android ) est :

En général, nous recommandons de minimiser la fréquence des demandes d'informations d'identification de l'utilisateur, afin de rendre les attaques de phishing plus visibles. de l'utilisateur, afin de rendre les attaques de phishing plus visibles et moins chances de succès. Utilisez plutôt un jeton d'autorisation et rafraîchissez-le.

Dans la mesure du possible, le nom d'utilisateur et le mot de passe ne doivent pas être stockés sur l'appareil. appareil. Au lieu de cela, effectuez l'authentification initiale en utilisant le nom d'utilisateur et le mot de passe fournis par l'utilisateur, puis utiliser un jeton d'autorisation de courte durée, spécifique au service, d'autorisation à courte durée de vie et spécifique au service.

Utilisation de la AccountManger est la meilleure option pour stocker les informations d'identification. Le site SampleSyncAdapter fournit un exemple de son utilisation.

Si, pour une raison ou une autre, vous ne pouvez pas opter pour cette solution, vous pouvez conserver les informations d'identification à l'aide de la commande Préférences mécanisme. Les autres applications ne pourront pas accéder à vos préférences, de sorte que les informations de l'utilisateur ne sont pas facilement exposées.

9voto

Jon O Points 3545

Vous devez utiliser le programme Android AccountManager . Il a été conçu spécialement pour ce scénario. C'est un peu lourd, mais l'une des choses qu'il fait est d'invalider les informations d'identification locales si la carte SIM change. Ainsi, si quelqu'un vole votre téléphone et y insère une nouvelle carte SIM, vos informations d'identification ne seront pas compromises.

L'utilisateur dispose ainsi d'un moyen rapide et facile d'accéder (et éventuellement de supprimer) les informations d'identification stockées pour tous les comptes dont il dispose sur l'appareil, le tout à partir d'un seul endroit.

SampleSyncAdapter (comme @Miguel l'a mentionné) est un exemple qui utilise les informations d'identification du compte stocké.

8voto

Riz Points 69

Je pense que la meilleure façon de sécuriser votre crédence est d'abord de penser à stocker le mot de passe avec le cryptage dans le fichier account.db qui ne pourrait pas être facilement disponible dans les appareils non enracinés et dans le cas d'un appareil enraciné le pirate doit avoir besoin de la clé pour le décrypter.

L'autre option est de faire toute votre authentification comme le fait Gmail. Après la première authentification avec le serveur Gmail, vous obtenez le jeton d'authentification qui sera utilisé dans le cas de votre mot de passe. Ce jeton sera stocké en texte clair. Ce jeton pourrait être faux dans le cas où vous changez le mot de passe du serveur.

La dernière option que je vous recommande est d'activer l'authentification à deux facteurs et de créer un mot de passe spécifique pour votre appareil. Après avoir perdu votre appareil, il vous suffit de le désactiver.

3voto

emmby Points 35359

Jetez un coup d'œil à Quel est le moyen le plus approprié pour stocker les paramètres de l'utilisateur dans une application Android ? si vous êtes préoccupé par le stockage des mots de passe en texte clair dans SharedPreferences.

2voto

Miguel Vitorino Points 2065

Vous pouvez également consulter le SampleSyncAdapter de l'échantillon du SDK. Il peut vous aider.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X