IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Pb authentification PHP


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Sécurité] Pb authentification PHP
    Bonjour,

    je développe une application en PHP pour authentifier les utilisateurs : un centre d'authentification. Le problème est que j'utilise des sites différents :

    www.truc.fr (pour un site 1)
    machin.truc.fr (pour un site 2)
    bidul.truc.fr (pour un site 2)
    auth.truc.fr (pour le site d'authentification)

    Mon script vérifie bien dans une base mysql et tt fonctionne correctement depuis le site auth.truc.fr mais comment vérifier l'identité du visiteur depuis les autres sites ?

    Créer un ID dans un cookie ou une session ne fonctionne pas car les sites sont différents (la session est valable depuis auth.truc.fr et inacessible depuis les autres sites *.truc.fr).

    Comment puis-je faire ? Avez vous déjà dévellopé ce genre d'application ? Avez -vous des liens ou conseil à me transmettre ?


    Merci beaucoup.

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    je suppose qu'il faut utiliser un système de jetons d'accès.

    Comment je ferais si j'avais à faire ça....
    Une fois qu'il est authentifié, je redirige l'utilisateur vers le site en question, en passant une variable par GET ou POST, qui pointe vers une entrée dans la base de données, valable pour une courte durée uniquement.

    Ainsi, du point de vue du site, on a un client qui arrive avec un pointeur vers des informations dans la base de données.

    NB c'est sans garantie que ça soit la méthode la plus simple, la plus sûre et la plus efficace !

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ok merci pour ta réponse, cela me semble être effectivement une bonne solution. Peux tu m'expliquer d'avantage le système à jetons ?

    Lorsque je suis redirrigé sur un site (machin.truc.fr par ex.) avec un jeton, dois-je utiliser une session pour ce site par la suite pour me souvenir de l'identité de l'utilisateur ?



    Merci

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par bodybody22000
    Ok merci pour ta réponse, cela me semble être effectivement une bonne solution. Peux tu m'expliquer d'avantage le système à jetons ?
    Les jetons c'est un principe de fonctionnement, c'est pas vraiment du php.
    Quand un utilisateur veut accéder à une ressource (site web, machine, application...), on lui demande de passer par un serveur d'authentification. Celui-ci vérifie que l'utilisateur a bien le droit de faire ce qu'il veut faire, et si oui il lui donne un jeton (qui peut prendre plusieurs forme, un nombre par exemple). L'utilisateur présente ensuite ce jeton à la ressource pour pouvoir y accéder, et la ressource vérifie l'authenticité du jeton auprès du serveur d'authentification.
    C'est, en très gros, le principe de fonctionnement d'un protocole comme Kerberos.
    En encore plus gros, c'est le genre de truc que j'ai essayé de décrire pour ton cas précis.

    Citation Envoyé par bodybody22000
    Lorsque je suis redirrigé sur un site (machin.truc.fr par ex.) avec un jeton, dois-je utiliser une session pour ce site par la suite pour me souvenir de l'identité de l'utilisateur ?
    Je te le conseille.
    Les sessions, c'est bien

  5. #5
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Sinon, pour les sessions, tu peux les rendre communes à tous tes sous domaines en modifiant "session.cookie_domain". Dans ton exemple il suffit de lui donner la valeur .truc.fr (ne pas oublier le . au début).

    Par contre selon la méthode de stockage des sessions sur le serveur, ça peut ne pas fonctionner (typiquement avec eAccelerator ça ne marchera pas tant que le paramêtre name_space ne sera pas utilisé).
    Google is watching you !

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/08/2006, 14h23
  2. Script page administration et authentification Php
    Par mastercartman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 11/03/2006, 17h34
  3. [XML] [cURL] Authentification Php récupération de données
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/02/2006, 14h23
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo