Bonjour,
je voulais savoir s'il existe des techniques, des librairies ou n'importe quoi d'autres qui permettent de partager les utilisateurs entre différentes applications php.
Style : phpBB, SPIP, dotClear etc.
L'idée est de faire en sorte que les utilisateurs ne remplissent qu'une fois le formulaire et que quand ils se connectent à l'un, ils sont connecté aux autres.
Pour ma part, j'ai fait une appli php et j'ai voulu rajouté un forum, j'ai fait comme ceci :
une lib avec une fonction qui créer un compte sur phpBB (insert dans la table qui va bien), une fonction qui se log et une fonction qui créé un compte pour tous les comptes de l'autre appli qui n'avait pas été créé sous phpBB.
J'ai pas implémenté la destruction du compte phpBB, ni le fait de se délogguer etc.
Bref, c'est un peu dégueu (ça a été fait en vitesse, y'a même des pages de phpbb que j'ai viré pour éviter que les utilisateurs modifies leurs comptes...)
Bref, c'est pas top...
Si quelqu'un a des idées pour faire ça plus proprement, je suis preneur.
Axel
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par Pooly (site web personnel) . Évalué à 1. Dernière modification le 04 décembre 2021 à 20:17.
tout refaire a la main…
C'est chiant, mais + fonctionnel, + souple et + clean…
(http://templeet.org (NdM: remplacé en 2021 par un lien archive.org) )
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 1.
Comme LDAP propose un schéma standard indépendant des applications, chacune peut s'y ratacher en ignorant les autres
Une interface web pour créer les comptes : phpLdapAdmin
Mais je ne crois pas qu'il permette à un anonyme de créer un compte, ce serait une améiloration intéressante
Le seul problème est qu'LDAP est rare chez les hébergeurs
pour le forum je te conseille fouletexte ( http://www.echodelta.net/scriptsphp/fouletexte/fouletexte.htm(...) ), il est très léger et s'intégre bien dans un site.
Un de mes projets est de le reprendre pour le faire passer en css et LDAP
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Prae . Évalué à 1.
Tout a fait, je rajouterais qu'il serait plus utile pour toi d'aider les developpeurs à gérer une base commune (par exemple LDAP);
comme ca, non seulement ton code sera conservé, mais en plus il sera utilisé par d'autres et maintenu.
C'est pas la belle vie ? :)
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Axel R. (site web personnel) . Évalué à 1.
Axel
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Chris K. . Évalué à 1.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 1.
En LDAP, les données sont hiérarchisées : l'annuaire a une racine, sous laquelle on peut mettre d'autres entrées, sous lesquelles on peut en mettre encore d'autres. Tu te constitues donc un annuaire avec des branches en plaçant sous la racine un objet de type "unité organisationnelle", que tu appelles par exemple "users", sous lequel tu places tes utiisateurs, qui sont eux de type "inetOrgPerson"
Le type d'une entrée est une classe, qui définit quels attributs l'entrée doit ou peut implémenter. Selon la spécification de la classe utilisée, il n'est pas toujours obligatoire de renseigner une valeur (par exemple, le champ 'secretary' de inetOrgPerson n'est pas renseigné si la personne n'a pas de secrétaire), et on peut souvent renseigner plusieurs valeurs (par exemple si tu as plusieurs adresses email, tu renseigne plusieurs fois le champ mail.
Ce dernier concept (les attributs multi-valués) est étranger aux SGBDR et permet souvent d'avoir un équivalent d'une distribution des données sur plusieurs tables dans un SGBD (par exemple, pour renseigner toutes les adresses emails d'une personne tu devrais avoir une table personne, et une table mail avec ID_personne et email. Ici tout est dans les infos de la personne). De plus tu peux ainsi tout récupérer en une seule requête de recherche.
Une grosse différence est aussi le système d'authentification. Avec LDAP, toute entrée de l'annuaire peut servir d'identifiant, du moment qu'elle a un mot de passe (champ 'userPassword') ou quel est référencée dans le système d'authentification utilisé.
Donc c'est naturellement que tout utilisateur peut s'authentifier, grace à l'opération LDAP du bind. Inutile d'aller chercher dans la base qui a ce login et qui a ce mot de passe.
Euh... c'était quoi la question ? Ah, oui. Et bien, donne nous un exemple, on verra ce qu'on peut faire.
LDAP ne peut dans la plupart des cas pas remplacer une base de donées relationnelle. Il est fait pour être complémentaire de celle-ci, et principalement :
- stocker des informations (et non des relations)
- assumer la fonction d'authentification
- stocker les données d'autorisation (exemple : groupes, objets)
Donc si tes relations servent à autoriser des personnes à accéder à des fonctionnalités ou à des données, c'est transcriptible sous LDAP. Pour le reste, il faut voir dans le détail. Tu peux toujours utiliser dans ta base des références vers les identifiants LDAP des utilisateurs, et mixer les deux dans ton appli PHP.
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par Ph Husson (site web personnel) . Évalué à 1.
et ca en interessera plus d'un
pour la partie phpBB2 je peux un peu t'aider vu que j'ai fait ca
pour mettre en relation le / de mon site web et le forum
par contre fodrait synchroniser avec wikini
(c'est pour http://sidenux.ath.cx(...) < /pub >)
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par Antoine Schweitzer-Chaput . Évalué à 2.
En libre y'a l'université de Yale qui a sorti CAS :
http://www.yale.edu/tp/auth/(...)
C'est du Java, ca a besoin d'un serveur J2EE, par exemple Tomcat.
C'est assez lourd à mettre en oeuvre, mais ca marche.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 1.
Ça c'est pour la partie authentification. Pour le reste, ça s'appelle du provisionning.
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nicolas Antoniazzi (site web personnel) . Évalué à 1.
J'ai besoin que les utilisateur de mon site puisse se connecter une fois, et que ca les logues a la fois dans egroupware et dans phpBB.
Pour ca, je récupere le nom et le mot de passe du formulaire.
J'ai repris la page de login de egroupware et j'ai viré tout ce qui n'était pas nécessaire. J'ai fait passer les nom et pass en GET dans ces pages pour que ca s'identifie.
Ensuite, de la je fais une redirection http vers une page de login modifié de phpBB... meme principe.
Et finalement, redirection http vers la page d'accueuil. Meme chose dans l'autre sens pour se déloguer.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 1.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nicolas Antoniazzi (site web personnel) . Évalué à 1.
De plus, si les 2 applis sont pas sur le meme serveur, il n'est pas possible de le générer non plus.
# Re: Partager les comptes utilisateurs entre différentes applications
Posté par bohwaz . Évalué à 1.
Moi personnellement je voudrais un système de compte uniformisé et en même temps indépendant. Que quand tu te log sur le site A tu sois aussi loggué sur le site B (si tu t'y est inscrit bien sûr) et que tu ne puisse pas modifier tes infos utilisateur sur le site A ou le site B mais sur le site Y qui sert d'authentification pour les autres sites A et B.
Donc en fait, le principe c'est qu'on a un site A et un site B et que pour logguer il fait une requête vers le site Y qui va dire si l'utilisateur a donné le bon mdp etc. Je suppose que chacun de ces sites est sur un serveur différent.
Je me demande donc bien comment faire d'une manière sécurisée. J'ai déjà pensé dans un premier temps à de simples requêtes HTTP avec le mdp en clair mais ça va pas c'est pas bon ça. Maintenant je réfléchit plus à utiliser XML-RPC mais j'ai aucune idée de comment sécuriser ça.
Sinon LDAP j'y connait rien et il parait que ça supporte pas du tout la charge.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 2.
La solution existe, elle s'appelle SAML, pour Simple Authentication Markup Language. Ce standard, basé sur XML, est promu par le consortium OASIS, et décrit dans différents documents ici :
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security(...)
De nombreux cas d'utilisation sont décrits, le tiens en fait partie.
Sinon tu as le système passport de MS :-) /o\
Sinon LDAP j'y connait rien et il parait que ça supporte pas du tout la charge.
Non tu n'y connais rien :)
Le modèle de données LDAP, utilisé conjointement avec des index, est environ dix fois plus performant que le modèle de données relationnel pour les requêtes de recherche.
Il est fait pour les données rarement mises à jour et souvent lues.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par bohwaz . Évalué à 1.
[^] # Re: Partager les comptes utilisateurs entre différentes applications
Posté par Nap . Évalué à 1.
mais bon tu as déjà des specs solides comme ça... et un système intéropérable, qui est Bien :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.