[SPIP Zone] OpenID et SPIP

Salut,

gt en train de reflechir à lancer un projet OpenID sur spip-zone,
histoire de pouvoir se loguer avec un openID dans SPIP. Mais aussi
histoire de fournir un serveur OpenID aux auteurs d'un site.
Je pense donc à une découpe en 2 plugins: un openid-client et un openid-serveur.

Côté implementation serveur OpenID, c'est assez simple je pense, on a
un squelette public avec dans l'entete les infos openid de l'auteurs
(i.e. une url vers une action SPIP qui gére le protocole openID).
Quand le client demande l'url de login du serveur, on renvoit vers une
page exec de SPIP protégée par le login du site, avec les boutons
d'autorisation openid qu'il faut...
voilà, c'est à peut pret tout.
Par contre, g pas encore trop cherché comment faire du sha1 avec php,
mais ça doit se trouver sans pbl :wink:

Côté implementaation client OpenID (i.e. on utilise un serveur openid
externe pour se loguer à SPIP), là je ne sais pas trop, parce que
j'arrive pas à trouver comment le login de SPIP marche actuellement
(quel cookie, ce qu'il faut mettre dans la base, etc...).

Donc, si ça interesse quelqu'un de participer au code, où au moins de
discuter un peu du sujet et me donner des pistes...

Pierre

PS: pour des infos sur le protocole (tres criptique) c'est:
http://openid.net/specs/openid-authentication-1_1.html

--
Pierre Andrews
Ph.D. Student, The University of York
Ing.info.dipl. EPFL
pierre.andrews@a3.epfl.ch
http://www.cs.york.ac.uk/~pandrews

Pierre Andrews a écrit :

Salut,

Donc, si ça interesse quelqu'un de participer au code, où au moins de
discuter un peu du sujet et me donner des pistes...
  

grandiose, ca me trotte aussi dans la tête !
sauf que j'ai pas encore eu le temps de m'y pencher :frowning:
Cedric

ça fait 6 mois que je lui casse les oreilles avec ça ... moi si je peux aider , je suis la :slight_smile:

Le 16 mars 07 à 16:16, cedric.morin@yterium.com a écrit :

Pierre Andrews a écrit :

Salut,

Donc, si ça interesse quelqu'un de participer au code, où au moins de
discuter un peu du sujet et me donner des pistes...

grandiose, ca me trotte aussi dans la tête !
sauf que j'ai pas encore eu le temps de m'y pencher :frowning:
Cedric
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

Ha, et en plus je viens de trouver ça:
http://iwantmyopenid.org/bounty

:smiley:

On Fri, 2007-03-16 at 16:16 +0100, cedric.morin@yterium.com wrote:

Pierre Andrews a écrit :
> Donc, si ça interesse quelqu'un de participer au code, où au moins de
> discuter un peu du sujet et me donner des pistes...
>
grandiose, ca me trotte aussi dans la tête !

+1 :slight_smile:

sauf que j'ai pas encore eu le temps de m'y pencher :frowning:

+1 :frowning:

--
À+, Pif.

On Fri, 2007-03-16 at 15:21 +0000, Pierre Andrews wrote:

Ha, et en plus je viens de trouver ça:
http://iwantmyopenid.org/bounty

heu .. 5000 download par mois, je suis pas sur qu'on y soit :slight_smile:

--
À+, Pif.

On Fri, 2007-03-16 at 14:55 +0000, Pierre Andrews wrote:

Salut,

gt en train de reflechir à lancer un projet OpenID sur spip-zone,

Il existe des lib en php visiblement, rete à savoir s'il y en a qui sont
sufisamment abouties et simple à intégrer.

  Connais tu des serveurs OpenId "de référence" qui permettraient de
valider la communication et donc la compatibilité ?

Côté implementation serveur OpenID, c'est assez simple je pense, on a
un squelette public avec dans l'entete les infos openid de l'auteurs
(i.e. une url vers une action SPIP qui gére le protocole openID).

Ça serait plutot une surcharge de ce qu'il y a derrière #LOGIN_* non ?

Côté implementaation client OpenID (i.e. on utilise un serveur openid
externe pour se loguer à SPIP), là je ne sais pas trop, parce que
j'arrive pas à trouver comment le login de SPIP marche actuellement
(quel cookie, ce qu'il faut mettre dans la base, etc...).

Ça me rassure de savoir que je suis pas le seul à trouver ça difficile
à déméler :slight_smile:

A priori, il faudrait coder ça comme une variante de auth_ldap, mais
je sais pas si c'est facile.

PS: pour des infos sur le protocole (tres criptique) c'est:
OpenID Authentication 1.1

26 pages, contre 56 pour la version 2 :expressionless:
mais bon, c'est quand même beaucoup moins que liberty alliance :slight_smile:

Sinon, il vaut mieux partir sur 1 ou 2 ? quelqu'un s'y connait ?

--
À+, Pif.

On 3/16/07, pif <christian_lefebvre@laposte.net> wrote:

On Fri, 2007-03-16 at 14:55 +0000, Pierre Andrews wrote:
> Salut,
>
> gt en train de reflechir à lancer un projet OpenID sur spip-zone,
Il existe des lib en php visiblement, rete à savoir s'il y en a qui sont
sufisamment abouties et simple à intégrer.

  Connais tu des serveurs OpenId "de référence" qui permettraient de
valider la communication et donc la compatibilité ?

moi j'utilise ça actuellement:
https://www.myopenid.com/

je sais pas si c'est une référence, j'y suis arrivé depuis openid.net :wink:

> Côté implementation serveur OpenID, c'est assez simple je pense, on a
> un squelette public avec dans l'entete les infos openid de l'auteurs
> (i.e. une url vers une action SPIP qui gére le protocole openID).
Ça serait plutot une surcharge de ce qu'il y a derrière #LOGIN_* non ?

he bien, cette url, c'est pour le "consumer" (i.e. le site demandant
l'auth), pas pour l'utilisateur, donc ce serait pas une page du site
public gérée par un squelette en cache... moi je pensais juste qq
chose qui reçoit des post et qui renvoit les reponses qu'il faut.. un
.php de base donc.
C'est vrai que ce serait pas une action dans le sens où ya pas de
redirection à la fin de l'entete.

C'est côté client qu'il faudrait une telle balise.

A priori, il faudrait coder ça comme une variante de auth_ldap, mais
je sais pas si c'est facile.

pas regardé de ce côté là encore...

> PS: pour des infos sur le protocole (tres criptique) c'est:
> OpenID Authentication 1.1
26 pages, contre 56 pour la version 2 :expressionless:
mais bon, c'est quand même beaucoup moins que liberty alliance :slight_smile:

Sinon, il vaut mieux partir sur 1 ou 2 ? quelqu'un s'y connait ?

Hum, sur openid.net, ils disent que le "current" c'est le 1.1
La difference principale du 2, c'est le format d'échange, qui au lieu
d'etre une url dans un .html qui apres retourne du texte retourne du
XRDS (???)
Pour l'instant, j'ai trouvé que la page wikipedia:

etait la moins criptique sur le protocole.

Pierre

Le 16/03/07, Pierre Andrews<pierre.andrews@gmail.com> a écrit :

Salut,

gt en train de reflechir à lancer un projet OpenID sur spip-zone,
histoire de pouvoir se loguer avec un openID dans SPIP. Mais aussi
histoire de fournir un serveur OpenID aux auteurs d'un site.
Je pense donc à une découpe en 2 plugins: un openid-client et un openid-serveur.

Le problème immédiat que je vois à un plugin openid-serveur c'est que
SPIP ne stoque pas les mots de passe, mais uniquement une signature
md5. Faire autre chose me parait chaud vu que les autres algos sont
aussi non réversibles.
La solution est peut-être de stocker en clair le mot de passe dans
spip_auteurs..

.Gilles
--

Côté implementation serveur OpenID, c'est assez simple je pense, on a
un squelette public avec dans l'entete les infos openid de l'auteurs
(i.e. une url vers une action SPIP qui gére le protocole openID).
Quand le client demande l'url de login du serveur, on renvoit vers une
page exec de SPIP protégée par le login du site, avec les boutons
d'autorisation openid qu'il faut...
voilà, c'est à peut pret tout.
Par contre, g pas encore trop cherché comment faire du sha1 avec php,
mais ça doit se trouver sans pbl :wink:

Côté implementaation client OpenID (i.e. on utilise un serveur openid
externe pour se loguer à SPIP), là je ne sais pas trop, parce que
j'arrive pas à trouver comment le login de SPIP marche actuellement
(quel cookie, ce qu'il faut mettre dans la base, etc...).

Donc, si ça interesse quelqu'un de participer au code, où au moins de
discuter un peu du sujet et me donner des pistes...

Pierre

PS: pour des infos sur le protocole (tres criptique) c'est:
OpenID Authentication 1.1

--
Pierre Andrews
Ph.D. Student, The University of York
Ing.info.dipl. EPFL
pierre.andrews@a3.epfl.ch
University of York
_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

On Fri, 2007-03-16 at 20:50 +0100, Gilles Vincent wrote:

Le 16/03/07, Pierre Andrews<pierre.andrews@gmail.com> a écrit :
> Salut,
>
> gt en train de reflechir à lancer un projet OpenID sur spip-zone,
> histoire de pouvoir se loguer avec un openID dans SPIP. Mais aussi
> histoire de fournir un serveur OpenID aux auteurs d'un site.
> Je pense donc à une découpe en 2 plugins: un openid-client et un openid-serveur.
>

Le problème immédiat que je vois à un plugin openid-serveur c'est que
SPIP ne stoque pas les mots de passe, mais uniquement une signature
md5.

quand c'est un compte ldap, il ne stocke ni l'un ni l'autre fait fait
passer l'info au ldap.
avec openid, on fait simplement passer l'info à un autre serveur qui
répond "ok" ou pas.

--
À+, Pif.

Salut,

vue vos messages, peut être que j'ai mal expliqué. Un serveur (disons
openid.spip.org) openid marche comme cela:
1- il reçoit une demande d'une autre application (disons
spip-contrib.net) pour obtenir un shared secret pour un certain
utilisateur (disont mortimer)
2- l'autre application envoit l'utilisateur sur le serveur avec le
shared secret, l'id de l'utilisateur et une url de retour.
3- l'iutilisateur arrive sur le server (openid.spip.net), il peut soit
avoir un cookie de session et il est déjà identifié, ou alors il lui
faut s'identifier sur ce serveur. A ce moment là, une identification
SPIP suffit
4- une fois identifié, le serveur (openid.spip.net) demande à
l'utilisateur (par une page web avec 2 boutons) s'il accepte
l'application (spip-contrib.net)
5- si oui, il renvoit l'utilisateur sur l'url de retour de
l'application (spip-contrib.net) avec un paramètre disant qu'il est
identifié, que le site vérifie avec le shared secret.

Il n'y a donc aucun échange de mot de passe entre le serveur et
l'application. L'utilisateur s'identifie 1 fois sur le serveur, en
utilisant (dans notre cas) l'authentification de base spip déjà
implémenté (ou l'auth ldap...).
Il n'y a donc rien de sensible à stoquer à part le shared secret qui
peut être utilisé pour plusieur session d'auth pour une certainne
application (mais là g pas compris si on est obligé de le faire ou
non).

Le côté serveur serait donc assez direct à implémenté dans cette
optique, puisqu'il n'y a pas besoin de bidouiller le login SPIP, juste
à implémenté une interface pour echanger le shared secret avec
l'application et implémenté une page exec pour que l'utilisateur
autorise l'application... et voilà :wink:

Pierre

On 3/16/07, Gilles Vincent <gilles.vincent@gmail.com> wrote:

Le problème immédiat que je vois à un plugin openid-serveur c'est que
SPIP ne stoque pas les mots de passe, mais uniquement une signature
md5. Faire autre chose me parait chaud vu que les autres algos sont
aussi non réversibles.
La solution est peut-être de stocker en clair le mot de passe dans
spip_auteurs..

On 3/16/07, pif <christian_lefebvre@laposte.net> wrote:

quand c'est un compte ldap, il ne stocke ni l'un ni l'autre fait fait
passer l'info au ldap.
avec openid, on fait simplement passer l'info à un autre serveur qui
répond "ok" ou pas.

Un serveur (disons
openid.spip.org) openid marche comme cela:

Une idée serait de consacrer spip.org à cela : chacun pourrait y
obtenir un identifiant global, couplé à un alias email, un compte
jabber etc. Enfin, si vous avez du temps à y passer :slight_smile:

-- Fil

Le samedi 17 mars 2007 à 00:02 +0100, Fil a écrit :

> Un serveur (disons
> openid.spip.org) openid marche comme cela:

Une idée serait de consacrer spip.org à cela : chacun pourrait y
obtenir un identifiant global, couplé à un alias email, un compte
jabber etc. Enfin, si vous avez du temps à y passer :slight_smile:

Moi je dois pouvoir fournir le serveur jabber (enfin, pour quelques
centaines d'utilisateurs sans problème, quelques milliers, je sais pas).

++

Franz