Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 07-02-2018 16:00:21

hyrr0
Membre
Distrib. : Debain stable
Noyau : 4.9
(G)UI : KDE 5.8 LTS
Inscription : 12-01-2018

Application Android sans création de compte utilisateur (stateless)

Bonjour à tous et à toutes!

Voilà, je me lance dans un petit challenge. J'ai déjà une petite expérience en matière de dev web mais jamais en dev mobile. Je voudrais tester de dev une application android native.

Je souhaite tester le dev de bout en bout et pas juste afficher un bouton et Hello World! quand on clique dessus... je voudrais aller de l'authentification jusqu'à l'utilisation d'une appli. J'ai envisagé le projet suivant : Une appli basique de suivi de course.

Le client s'authentifie puis déclare qu'il commence une nouvelle session de course. Le client enregistre le temps et les coordonnées GPS. A la fin, le client informe de la fin de sa session. Les données sont envoyées au serveur  créé pour l'occasion en Go + MongoDB.

Globalement, je vois très bien comment aborder la question. Le seul point noir que j'ai c'est l'authentification. D'où ma question: Comment font les applications Android qui n'utilisent pas de compte utilisateur?

Est-ce que Google fournit un système d'authentification via un compte utilisateur (solution parfaite puisque, en cas de changement de téléphone, le client garde son compte). Ou bien je dois mettre en place un système basé sur l'identifiant unique du device et créer des tokens à la OAuth ou JWT ?

Merci de m'avoir lu jusqu'ici et pour l'aide éventuelle que vous pourrez m'apporter dans le domaine smile

A charge de revanche sur du web! big_smile

Hors ligne

#2 07-02-2018 16:44:45

Artheriom
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-5-amd64
(G)UI : Gnome3
Inscription : 29-01-2018
Site Web

Re : Application Android sans création de compte utilisateur (stateless)

Yop,

Je pense que le mieux à faire pour toi est de jeter un oeil au système de connexion centralisé de Google, que tu peux implémenter sur tes API :  https://developers.google.com/identity/
Tu peux aussi sinon gérer toi même avec ton propre système d'authentification (auquel cas ton serveur doit aussi gérer le biniou, avec une table utilisateur), ou tu peux couper la poire en deux en gérant ton propre système d'authentification (via ton serveur), mais en faisant appel à un truc déjà éprouvé pour, par exemple, Keycloak.

Perso, vu que tu veux faire une appli Android, je te conseille la première option. Le système de connexion de Google te permettra de récupérer un identifiant unique par utilisateur pour gérer ta base de données.

Si tu veux te baser uniquement sur l'ID unique du téléphone, alors ton idée d'un système client/serveur est "stupide", car au final, l'utilisateur n'aura pas accès à ses données en dehors de son propre téléphone. Auquel cas, tu peux carrément charger une lib qui gère un fichier SQLite sur le téléphone client et donc te soustraire de toute la partie serveur.

Dans tout les cas, les avantages et les contraintes :
Centralisé via Google :
+ Gestion des comptes simple
+ Possibilité de synchro
- Tu va probablement saigner un peu en te tapant la doc de Google Identity Platform

"Standalone" :
+ Plus simple
+ Pas de serveur
- Pas de synchronisation

Dans tout les cas, bon courage. wink

Étudiant en licence 3eme année d'Informatique à l'Université Clermont-Auvergne (ex UBP)
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.

Hors ligne

#3 07-02-2018 17:18:15

hyrr0
Membre
Distrib. : Debain stable
Noyau : 4.9
(G)UI : KDE 5.8 LTS
Inscription : 12-01-2018

Re : Application Android sans création de compte utilisateur (stateless)

Merci Artheriom.

Alors oui, l'idée du serveur est stupide mais le but c'est justement de mettre en pratique client/serveur. Apprendre Golang en poussant un peu. Apprendre Mongo car j'ai vu que ça gérait les données géospatiales (coordonnées GPS par exemple) et le tout avec une appli Android. Autrement dit, trois trucs que je connais pas en un! big_smile

Maintenant, je suis le premier à trouver ça chiant quand il faut créer un compte! Des comptes j'en ai partout. En plus j'oublie les mots de passe à chaque fois! Donc j'ai un gestionnaire de mot de passe... donc quand je dois me connecter, bah au lieu de taper mon mdp faut que je me connecte sur le gestionnaire... puis sur mon appli. Bref, la création de compte c'est chiant à mourir ! Pour tout le monde! Et quand je télécharge une appli sur le store et qu'elle me demande de créer un compte : je la supprime (sauf si c'est une appli "importante").

Du coup, j'essaie de comprendre comment faire "autrement" sans rien changer pour l'utilisateur.

Je vais essayer de regarder ce que tu me propose avec Google. T'as déjà essayé toi? Des références? Genre tutos / vidéos youtube sur le sujet ? smile

Hors ligne

#4 07-02-2018 17:22:13

Artheriom
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-5-amd64
(G)UI : Gnome3
Inscription : 29-01-2018
Site Web

Re : Application Android sans création de compte utilisateur (stateless)

Google est justement un bon compromis à ce sujet, car a évite de devoir encore créer des comptes, etc, etc... wink

Euh, je dois avoir ce genre de trucs sur un de mes autres PC, je jette un coup d'oeil à ça tout à l'heure ou demain, selon mon temps dispo. wink

Étudiant en licence 3eme année d'Informatique à l'Université Clermont-Auvergne (ex UBP)
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.

Hors ligne

#5 21-02-2018 16:52:43

Artheriom
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-5-amd64
(G)UI : Gnome3
Inscription : 29-01-2018
Site Web

Re : Application Android sans création de compte utilisateur (stateless)

Me revoilà. J'ai été un peu occupé, désolé de répondre si tard..

Visiblement, Google Identity est "simplement" un serveur OAuth2. L'implémentation est donc pas très compliquée.
La doc de référence est ici : https://developers.google.com/identity/ … eb/sign-in wink

Étudiant en licence 3eme année d'Informatique à l'Université Clermont-Auvergne (ex UBP)
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.

Hors ligne

#6 21-02-2018 17:15:34

hyrr0
Membre
Distrib. : Debain stable
Noyau : 4.9
(G)UI : KDE 5.8 LTS
Inscription : 12-01-2018

Re : Application Android sans création de compte utilisateur (stateless)

Oui j'ai vu ça... mais du coup t'es obligé de t'inscrire quand même. C'est simplifié (un seul bouton à appuyer) mais ça reste une inscription. J'ai pas encore trouvé de moyen de faire ça proprement. C'est un peu le sujet du moment j'ai l'impression : Rendre internet "password-less". Mais niveau sécurité, c'est pas encore ça.

Je vais voir à me tourner vers des solutions classiques. Ensuite on verra ... Déjà faut que j'avance l'appli en elle même. L'identification ça vient après ^^

Merci pour ton aide ! big_smile

Hors ligne

#7 21-02-2018 17:19:35

Artheriom
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-5-amd64
(G)UI : Gnome3
Inscription : 29-01-2018
Site Web

Re : Application Android sans création de compte utilisateur (stateless)

Mh, du password-less... Sur les PCs il existe des "clefs" comme Intel True Key. Sur Mobile, c'est un sacré challenge. Eventuellement, en utilisant le numéro de téléphone comme identifiant unique ? Les gens changent souvent de téléphone mais rarement de numéro de téléphone... Je sais pas, ça semble compliqué et intéressant, réussir un système d'identification totalement "sans mot de passe, sans confirmation", tout en permettant à l'utilisateur de se ré-authentifier depuis un autre mobile par la suite.

Par contre normalement si ton appli est bien faite, l'utilisateur aura à se connecter qu'au premier lancement. Par exemple, Pokémon Go, tu te connecte une fois, tu te reconnecte plus après, c'est enregistré. Idem pour Runtastic, etc. Du coup la question qui se pose est : Si l'utilisateur n'a besoin de se connecter qu'une fois au premier lancement de l'appli, est-ce un drame s'il doit juste confirmer une connexion avec un compte Google ?

Dernière modification par Artheriom (21-02-2018 17:20:08)


Étudiant en licence 3eme année d'Informatique à l'Université Clermont-Auvergne (ex UBP)
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.

Hors ligne

#8 21-02-2018 17:26:02

hyrr0
Membre
Distrib. : Debain stable
Noyau : 4.9
(G)UI : KDE 5.8 LTS
Inscription : 12-01-2018

Re : Application Android sans création de compte utilisateur (stateless)

Il existe déjà une solution qu'on utilise (du moins ceux qui ont un compte git) : SSH.

Tu te connecte au travers de ta clé publique. Là où c'est plus chiant (et c'est ce que j'ai vu sur internet) c'est comme tu le dis quand tu changes de mobile... Faut copier tes fichiers SSH sur le nouveau mobile. Solution : déporter tes fichiers SSH sur un cloud. Problème : Sécurité + comment tu le récupères... il te faut un compte pour t'identifier. Quid de l'intérêt dans ce cas...

Bref j'ai cherché pas mal de trucs... et en gros, tant qu'on aura pas de bagues/doigts bioniques, on pourra pas s'en sortir. Pour les nouveaux téléphones, tu peux te servir du capteur d'empreintes digitales et/ou de la caméra et de détection faciale. Problème : les photos... n'importe qui avec ta tronche en photo peu déverrouiller ton appli. Pour les doigts : ça marche bien, mais tu mets de côté tous les utilisateurs qui n'ont pas de lecteur d'empreinte digitale sur leur téléphone.

Hors ligne

#9 21-02-2018 17:28:00

Artheriom
Membre
Lieu : Clermont-Ferrand
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-5-amd64
(G)UI : Gnome3
Inscription : 29-01-2018
Site Web

Re : Application Android sans création de compte utilisateur (stateless)

J'ai pas proposé SSH car il faut de base générer les clefs, puis les stocker, et en effet les déporter sur le nouveau mobile si tu en change. Le commun des mortels ne fait pas ça. tongue (Même si en effet, ça marche comme option).

Étudiant en licence 3eme année d'Informatique à l'Université Clermont-Auvergne (ex UBP)
Parfois je fais des trucs sur le Oueb", et généralement ça fonctionne. Fondateur de Goldheim https://goldheim.fr/
Linuxien convaincu depuis 2010. Adepte de Debian, CentOS, Mandrake, Ubuntu, SolusOS. Mandravia, c'était pas si mal.

Hors ligne

Pied de page des forums