37 lines
1.8 KiB
Markdown
37 lines
1.8 KiB
Markdown
# Authentification
|
|
|
|
## Contexte
|
|
|
|
Le projet demande de pouvoir authentifier les utilisateurs présents. Le but étant de leurs associer un "contexte"
|
|
(cours, informations personnelles, ...). Pour que ceux-ci puissent accomplir différentes actions nécéssitantes une
|
|
identification (permission, info personelles, ...).
|
|
|
|
## Méthode
|
|
|
|
Lorsque qu'un utilisateur se connecte au serveur, nous lui envoyons un token qui sera stocké dans le
|
|
navigateur. Ce token est unique à l'utilisateur et pourra être ré-envoyé dans les futures requêtes
|
|
pour identifier l'utilisateur.
|
|
|
|
Ce token est donc une chaine de 64 caractère ASCII aléatoires,ce qui est d'après nos recherches suffisant.
|
|
|
|
De plus une limite de 5 token par utilisateur sera ajoutée de sorte à
|
|
1) S'assurer qu'une personne ne noie la base de donnée de tokens.
|
|
2) Ajouter une protection supplémentaire pour assurer qu'un token est bien unique à un utilisateur.
|
|
|
|
## Autres méthodes envisagée
|
|
|
|
### Oauth2
|
|
|
|
C'est un protocol d'identification vastement utilisé permettant, en plus d'identifier les requettes,
|
|
de gérer leurs permissions. Un utilisateur créen un token peut lui attribuer des permissions
|
|
spécifique qui restrainderaients les permissions d'utilisation de ce token. C'est très utile pour
|
|
déployer des api de site pouvant notament être accédé par des ordinateurs / bots. Ca n'est en
|
|
revanche pas l'objectif du projet et l'option n'a donc pas été retenue
|
|
|
|
### Spring Sessions / Tomcat sessions
|
|
|
|
Il aurait été possible de laisser une librairie automatiser les sessions. Malheuresement, celà
|
|
implique de devoir se plier au format de la dite librairie. L'implémentation d'un système de gestion
|
|
de token maison semblai à la fois, non-imposible et interessant à notre apprentisage. C'est pourquoi
|
|
nous n'avons pas utilisé cette option.
|