Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Général Conception Web > Sécurité
Sécurité Forum d'entraide sur la sécurité des sites Web, les protections, l'authentification, etc. Avant de poster -> Cours Sécurité.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2007, 16h52   #1
Futur Membre du Club
 
Inscription : septembre 2006
Messages : 49
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 49
Points : 19
Points : 19
Par défaut Transmission d'un login d'un serveur à un autre

Bonjour,

Je me travaille actuellement avec un client qui souhaite une connection directe de son site web corporatif vers le site web que je lui dévelope actuellement.

Les deux sites nécessitent un login/mdp. Le client ne veux pas que l'utilisateur doive se relloguer lors du changement de site... Le problème principal est que les deux sites sont sur des serveurs différents (et ça n'est pas modifiable malheureusement)

Est ce que vous auriez une idée de la manière la plus sécurisée de passer d'un serveur à l'autre les informations de login?

(ou de me donner des arguments pour le convaincre de ne pas utiliser cette solution )

Merci d'avance
tet2brick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2007, 12h22   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Ca s'appelle du SSO ce que tu cherches à faire. Question : pour le moment, l'authentification se fait par formulaire de login ou c'est de l'authentification Basic HTTP ? Dans le premier cas, tu peux mettre en place un outil genre CAS. Pour le second cas, désolé mais y a pas de solution sauf à installer un truc sur le poste client.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2008, 15h20   #3
Membre actif
 
Inscription : mars 2008
Messages : 211
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2008
Messages : 211
Points : 165
Points : 165
Envoyer un message via MSN à Enhide
Bonjour,

Je souhaite faire la même chose, c'est même marrant de voir que je me heurte au même problème....

Merci pour ta réponse mais pourrais-tu développer ce qu'est "CAS" ?
Enhide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2008, 15h36   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
[attention : image cliquable...]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2008, 16h45   #5
Membre actif
 
Inscription : mars 2008
Messages : 211
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2008
Messages : 211
Points : 165
Points : 165
Envoyer un message via MSN à Enhide
Merci pour ton intervention mais j'avais déjà cherché sur google. Si je suis ici c'est pour avoir des précisions et une explication de certaines choses.

Et puis après avoir beaucoup réfléchit à mon problème, je ne pense pas qu'installer un serveur SSO soit le plus pratique.

Je demande simplement s'il est possible de récupérer le login et le mdp en php et de la communiquer directement au navigateur / au serveur pour que le pop-up qui demande login et mdp ne s'affiche pas. Je pensais cela possible puisque les information de log sont les même pour les deux sites.

Merci.
Enhide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2008, 17h53   #6
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
2 possibilités (ou presque) :
  • Si tu fais une authentification basique HTTP, pas de solution car le navigateur ne transmet le login/mot de passe qu'au même serveur et chemin (ou sous-chemin) qui lui a demandé la première fois.
  • Si tu fais une authentification par formulaire HTML, c'est que tu passes par les sessions HTTP. Dans ce cas, le seul moyen de t'en sortir c'est que les sites soient sur le même domaine ou sous-domaine. Dans ce cas, il faut configurer PHP pour qu'il envoie ses cookies de session sur ce domaine commun et dans ce cas, le cookie de session sera transmis d'un site à un autre. Reste qu'il faut que les 2 sites partagent la même session, et c'est pas forcément gagné. Faut essayer, je ne sais pas si c'est possible. Sinon, toujours sous la condition du domaine commun, tu stockes dans un cookie maison un identifiant qui sera transmis par le navigateur d'un site à un autre, charge au site qui capte ce cookie pour la première de le comprendre et de créer la session qui va bien.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 13h55   #7
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Salut,

Je suppose que tu passe d'un site à l'autre par un lien.

Imaginons que tu es logué sur le site A et que tu as une session ouverte
sur celui-ci. Sur la page du site A il y a un lien qui devrait t'envoyer sur
le site B, au lieu de mettre l'url du site B, tu met un lien sur une page crosslogin.php sur le site A.

Dans cette page tu envoie une requête au site B (par exemple avec CURL)
sur une page get_id.php du site B. Le rôle de la page est de te renvoyer un
identifiant unique que tu utilise ensuite comme paramètre pour une redirection.

Page get_id.php: (sur serveur B)

1) n'autorise que les requêtes de l'IP du serveur A
2) reçoit le nom de l'utilisateur en paramètre (event. aussi le md5 du password)
3) génère un identifiant unique et le sauve dans la tables users
4) renvoie cet identifiant

crosslogin.php: (sur serveur A)

1) obtient un identifiant unique de la page get_id.php via une requête entre serveurs
2) renvoie un header("Location: http://siteB/directlogin.php?id=identifiant

Page directlogin.php (sur serveur B)

1) vérifie quelle user correspond à l'identifiant
2) ouvre une session pour l'utilisateur
3) détruit l'identifiant unique de la table user
4) redirige par header location sur la page voulue du site B
__________________
Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 14h36   #8
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Bref, un SSO maison
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 16h30   #9
Membre actif
 
Inscription : mars 2008
Messages : 211
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2008
Messages : 211
Points : 165
Points : 165
Envoyer un message via MSN à Enhide
Merci pour votre aide mais j'ai résolu mon problème d'une manière vraiment très simple, je ne n'aurais pas pu mettre en place ce que tu m'as décrit Marcha puisque j'ai acces au serveur B juste pour récupérer des stats et je ne sais pas si j'aurais pu y déposer mes scripts (je dois réaliser ce travail dans le cadre d'un stage).

Pour me logger automatiquement, j'ai seulement ajouté le loggin et le mdp dans l'url :

http://login:mdp@adressedusite.com

Cela fonctionne parfaitement.

Merci pour votre aide, ça fait plaisir de voir des gens qui s'entre-aide.
Enhide est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 16h34   #10
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Regarde ce sujet, il semble qu'il y ait une limitation avec IE sur cette syntaxe.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 16h40   #11
Membre actif
 
Inscription : mars 2008
Messages : 211
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mars 2008
Messages : 211
Points : 165
Points : 165
Envoyer un message via MSN à Enhide
Merci de t'en soucier, mais je le savais déjà, mais comme il s'agit de développer un outil interne qui ne sera utilisé qu'au sein de l'entreprise dans laquelle je suis, cela ne pose pas problème, ils utilisent ou utiliseront tous Firefox.

Merci.
Enhide est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h04.


 
 
 
 
Partenaires

Hébergement Web