Intégration d'openID à mon site phpboost
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Est-ce possible d'intégrer openID à mon site? Quelqu'un peut me dire ce que ça implique?
Merci.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Il me semble qu'actuellement avec le système d'authentification que l'on as, ce n'est pas possible simplement.
Édité par ReidLos Le 29/09/2010 à 08h45
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Merci ReidLos et ben.popeye, je me doutais de cette réponse.
Mais qu'en est-il si je devais le faire néanmoins? Ça implique quoi? Qu'est-ce qui serait à modifier?
Je ne connais pas beaucoup openID, mais je sais qu'il y a possibilité d'intégrer ça via des classes php ou même via apache.
Je dois modifier quoi sur le moteur pour l'intégrer. Je ne veux pas que vous le fassiez, bien au contraire, mais dans un avenir rapproché, j'ai des impératifs et je devrai l'intégrer. Je ne veux pas changer de plate-forme, je suis très satisfait de phpboost.
je suis prêt à mettre la main dans le cambouis, mais j'aurais besoin qu'on me pointe dans la bonne direction.
Merci.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Du plaisir en perspective, n'est-ce pas.

Tu peux me dire où se trouve tout le système de connexion?
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Tiré de Wikipedia :
Le mode de fonctionnement d'OpenID est le suivant :
* L’utilisateur x désire, par exemple, accéder au service PHPBoost qui requiert que l’utilisateur soit authentifié.
* L’utilisateur entre son identifiant : x.sub.domain.com.
* Le fournisseur de service (PHPBoost dans notre cas) contacte le fournisseur d'identité et ils créent ensemble un secret partagé.
* L’utilisateur est redirigé vers le site du fournisseur d'identité et entre son mot de passe pour s’authentifier.
* L’utilisateur est alors averti que PHPBoost souhaite avoir accès à certains attributs de son profil OpenID (par exemple, son nom, prénom, et son adresse de courriel), et accepte ou non cette demande.
* L’utilisateur est redirigé vers PHPBoost avec une preuve cryptographique de son identité (créée grâce au secret partagé préalablement établi) fournie par le fournisseur d'identité et est authentifié.
Tant que la session de l’utilisateur est active, il pourra être reconnu automatiquement sur les autres sites utilisant OpenID grâce au mécanisme de l’authentification unique.
* L’utilisateur x désire, par exemple, accéder au service PHPBoost qui requiert que l’utilisateur soit authentifié.
* L’utilisateur entre son identifiant : x.sub.domain.com.
* Le fournisseur de service (PHPBoost dans notre cas) contacte le fournisseur d'identité et ils créent ensemble un secret partagé.
* L’utilisateur est redirigé vers le site du fournisseur d'identité et entre son mot de passe pour s’authentifier.
* L’utilisateur est alors averti que PHPBoost souhaite avoir accès à certains attributs de son profil OpenID (par exemple, son nom, prénom, et son adresse de courriel), et accepte ou non cette demande.
* L’utilisateur est redirigé vers PHPBoost avec une preuve cryptographique de son identité (créée grâce au secret partagé préalablement établi) fournie par le fournisseur d'identité et est authentifié.
Tant que la session de l’utilisateur est active, il pourra être reconnu automatiquement sur les autres sites utilisant OpenID grâce au mécanisme de l’authentification unique.
Ce qui veut dire que Côté PHPBoost, il faut :
- Un formulaire d'authentification séparé pour OpenId
- Ce formulaire contacte l'identity provider OpenID de l'utilisateur et échange avec lui une clé de cryptage (Peut-être des clés publiques pour faire du RSA, je ne sais pas)
- Ensuite, le formulaire redirige l'utilisateur vers son identity provider OpenID
- Celui vérifie que l'authentification de l'utilisateur en lui demandant son mot de passe et retourne à PHPBoost une réponse signée, il faudra donc la vérifier pour s'assurer que l'utilisateur est authentifié.
- Une fois que l'utilisateur est authentifier, il faut mettre à jour son profil utilisateur PHPBoost. Dans le cas ou le membre n'existe pas, il faut donc le créer en précisant que c'est un compte OpenID et que par conséquent aucun mot de passe n'est stocké côté PHPBoost.
- Après ça le comportement est le même que pour les autres membres.
Comme actuellement le système de session de PHPBoost n'est pas très bien fait, il contient aussi le code permettant d'authentifier un membre, il va falloir le modifier en profondeur, ce qui est extrêmement risqué.
Donc à moins que tu ne comprennes tout ce que fait la classe Session, je te conseille de ne pas te lancer dedans, cette classe est vraiment trop mal faîte pour que tu puisses arriver en un temps raisonnable à quelque chose qui fonctionne et qui n'introduise pas de faille de sécurité.
Cependant, si tu as quand même le courage (ou la pression de tes utilisateurs) pour t'y lancer dedans, tu pourras poser toutes les questions que tu veux, on essaiera d'y répondre pour que tu puisses continuer.
Voilà, désolé si je t'ai peut-être un peu découragé, mais l'authentification est vraiment quelque chose de très compliqué, surtout avec des systèmes tiers comme OpenID.
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
Visiteur
Boosteur Inactif
dans le cas des admin serveur paranoyaque (comme moi) qui on bloquer php au local.
variable fopen bloquer au serveur, et ayant interdiction de sortir sa bloque ou pas ?,
je me bloque la reconnaissance déjà des maj par cette fonction (ce qui n'est pas un gros manque je les ai en local)
mais cette fonctionnalité est mise en place par pas mal de hosteur gratuit ce qui représente pas mal d'user en perspective.
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Sinon, horn a bien détaillé la situation.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique
Sinon effectivement ça parait bien compliqué de pouvoir gérer OpenID. Est-ce que ça déjà été intégré sur un autre CMS ?
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
CrowkaiT :Ce qui est envisageable par contre, c'est qu'on prenne en charge LDAP. Cela suppose une réécriture complète de la classe Session, qui en a bien besoin...
Sinon effectivement ça parait bien compliqué de pouvoir gérer OpenID. Est-ce que ça déjà été intégré sur un autre CMS ?
Hey! Salut CrowkaiT, ça fait un bail que je t'ai vu.

Les gars, je vous remercie d'abord pour l'intérêt que vous portez à ma demande. Je saisis bien ce que horn a exposé, j'avais lu le même truc sur wikipedia.

Je vous pointe vers ce site (en anglais seulement) : http://openid.net/add-openid/
En fait, plusieurs plug-ins existent pour différents CMS et autre : drupal, wordpress, phpbb, punbb, spip, joomla, etc.
Il y a aussi sur ce site des librairies php. Donc, il y des trucs qui ont déjà été implémentés et qui fonctionnent. Avec ça, la tâche est peut-être moins ardue.
Néanmoins, ce qui m'inquiète, c'est que vous semblez dire que la classe Session est plutôt bof... Alors, qu'est-ce qui cloche avec cette classe et pourquoi elle a besoin d'une réécriture?
De plus, CrowkaiT, dis-moi, lorsque tu suggères de prendre en charge LDAP, c'est pour la portion authentification? En quoi ça améliorerait l'intégration d'openID?
Shadow Membre non connecté
Booster Fusée
-
Booster Fusée
- Voir le profil du membre Shadow
- Inscrit le : 30/12/2007
- Site internet
CrowkaiT :
Ce qui est envisageable par contre, c'est qu'on prenne en charge LDAP. Cela suppose une réécriture complète de la classe Session, qui en a bien besoin...
Ça, ce serait super top
La seule chose qui m'a empêchée d'utiliser PBT sur l'Intranet de ma boite, c'est la non intégration au LDAP.
Shadow
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
"Quand tu ranges chez toi, ça fout le bordel chez ton voisin". - Règle d'entropie générale adaptée aux usages domestiques.
ReidLos Membre non connecté
-
Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
-
Equipe Développement
Pour créer une session, une passe par plusieurs ligne de code, alors qu'un classe Session existe... L'adapter aux mise à jour qui, depuis la création de la classe, ont été faites.
Elle est globalement pas propre, et rien que pour un développeur, si ont veut l'utiliser il faut bien chercher, parce que le fichier contient pas mal de ligne de code.
Édité par ReidLos Le 30/09/2010 à 09h07
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Actuellement le système de sessions est robuste mais pas évolutif. Il confond la notion d'authentification, de lancement et de suivi de session, alors que tout cela devrait être séparé. Et il faudrait un gros travail pour les séparer, d'autant plus que c'est un des points clés de la sécurité, donc toucher à ce bout de code c'est prendre des risques.
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Ok, mais tout de même, si on ne touche pas à la classe Session alors, c'est faisable ou pas? Je pourrais y arriver ou pas?
Je suis bien prêt à prendre le risque, d'autant que je le ferai sur une installation test, donc si ça casse, pas trop grave.
À la limite, si je m'attaque à cette intégration, le projet phpboost ne pourra qu'en bénéficier, n'est-ce pas?

Cependant, ce que j'aimerais savoir : devrais-je voir à modifier cette classe Session d'abord ou pas?
Si je me lance, pouvez-vous me donner du support et m'aider dans ma démarche?
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie