Aller au contenu

Authentification sur plusieurs domaines et sécurité


Sujets conseillés

Posté

Bonjour à tous,

je suis en train de développer un projet en ligne en PHP où je vais avoir :

- une plateforme principale où l'utilisateur s'enregistre et se connecte.

- différentes applications en ligne, chacune avec son propre nom de domaine.

La plateforme principale serait un peu comme un mini "Google Account" où l'utilisateur gérerait ses coordonnées, son mot de passe, ses applications, etc. Une fois qu'il est connecté et reconnu sur la plateforme, l’utilisateur pourra se connecter d'un simple clic aux différentes applications hébergés sur d'autres domaines.

La plateforme et les applications seront sur le même serveur.

Je voudrais faciliter l'authentification : si l'utilisateur est bien connecté à la plateforme, il peut se connecter aux différentes applications sans avoir à resaissir son login/mot de passe. Problème : la plateforme et les applications ayant leurs propres noms de domaine, je ne peux pas utiliser les variables de sessions.

J'ai pensé à un fonctionnement pour contourner ça, mais je me pose des questions en terme de sécurité, je voudrais éviter qu'il y ait des failles (dans mon raisonnement et dans la structure :-)

Voici le fonctionnement prévu :

- La plateforme et les applications disposent chacune d'une table d'utilisateurs ayant pour point commun l'e-mail.

- Lorsque l'utilisateur, authentifié sur la plateforme, clique sur un bouton pour accéder à une application, un script va enregistrer dans la base de données de l'application, à la ligne du même utilisateur, un jeton de connexion généré aléatoirement et une date de connexion en secondes puis rediriger l'utilisateur vers un script de connexion externe se trouvant sur le domaine de l'application, avec en paramètre l'e-mail et le jeton de connexion.

- Ce script de connexion externe va comparer le jeton de connexion avec celui enregistré en base de données à la ligne de l'e-mail reçu et vérifier que la date de connexion se trouve dans les 10 secondes. S'il n'existe pas de jeton ou de date de connexion, la comparaison n'est pas validée. Si tout est validé, une session est créée et l'utilisateur est redirigé vers l'application. Dans tous les cas de figure le jeton et et la date de connexion en base de données sont détruits.

Est-ce que ce fonctionnement vous parait solide en terme de sécurité ? Et sinon est-ce qu'il y a plus simple ? :-)

Merci d'avance pour votre retour !

  • 4 semaines plus tard...
Posté (modifié)

Les cookies multi domaines ne sont pas sécurisés.



La solution serait clairement de créer un cookie par domaine à la première connexion.


Pour cela rien ne plus simple :



1/ Visiteur se logue sur site A


2/ Site A crée son cookie


3/ Site A appelle site B en Curl sur une url du site B qui va générer un cookie pour le site B


4) Ne pas oublier d'appeler cette url en y ajoutant un clé d'identification de sorte que personne à part toi ne puisse faire ces créations de cookie.



Edit : erf je n'avais pas vu la date ... Désolé pour la remontée du poste :(


Modifié par kendyan
  • 4 semaines plus tard...
Posté

oui effectivement, remonté de post loool


SInon, même avec les sessions seraient possible puisque tous les sites seraient sur le même serveur... suffit de créer une interface valable pour tous les sites.


Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...