Différences entre versions de « Lasso »
Sauter à la navigation
Sauter à la recherche
imported>SylvainBeucler m (→Exemples) |
imported>SylvainBeucler m (Désinstallation) |
||
(29 versions intermédiaires par 3 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[http://www.entrouvert.com/en/digital-identity/ Présentation] des prestations de SSO chez Entr'Ouvert. | [http://www.entrouvert.com/en/digital-identity/ Présentation] des prestations de SSO chez Entr'Ouvert. | ||
+ | |||
+ | == Les spécifications == | ||
+ | |||
+ | * ID-FF 1.2: conçue par le consortium Liberty Alliance | ||
+ | * SAML V2.0 qui fait converger ID-FF et les versions antérieures de SAML, chapeautée par l'OASIS | ||
== Les projets == | == Les projets == | ||
* [http://lasso.entrouvert.org/ Lasso]: bibliothèque multi-langages pour utiliser un environnement Liberty Alliance | * [http://lasso.entrouvert.org/ Lasso]: bibliothèque multi-langages pour utiliser un environnement Liberty Alliance | ||
− | * [http://www.entrouvert.com/en/digital-identity/authentic Authentic]: fournisseur d'identités | + | * [http://www.entrouvert.com/en/digital-identity/authentic Authentic]: fournisseur d'identités (support LDAP) |
− | * [http://www.entrouvert.com/en/digital-identity/larpe Larpe]: reverse proxy, pour gérer Liberty Alliance sans toucher le code de l'application. Attention, cela ne fonctionne pas toujours, voir par exemple [http://wiki.entrouvert.org/Liste_des_services_Entr%27ouvert/LE_libertys%C3%A9s_avec_Larpe les services Libre-Entreprise] qui n'ont pas pu être libertisés. | + | * [http://www.entrouvert.com/en/digital-identity/larpe Larpe]: reverse proxy, pour gérer Liberty Alliance sans toucher le code de l'application. Attention, cela ne fonctionne pas toujours, voir par exemple [http://wiki.entrouvert.org/Liste_des_services_Entr%27ouvert/LE_libertys%C3%A9s_avec_Larpe les services Libre-Entreprise] qui n'ont pas pu être libertisés (cf. liste interne [https://listes.libre-entreprise.org/wwsympa.fcgi/arc/reseau/2007-02/msg00072.html]). |
+ | * [http://lists.labs.libre-entreprise.org/pipermail/lasso-devel/2007-April/001780.html scalp]: module Apache pour gérer une partie de la couche SSO. <code>bzr branch http://perso.entrouvert.org/~fred/bzr/modscalp/</code>. Cette solution ne gère pas les sessions, ni donc le SingleLogout. Elle simplifie l'implémentation de la phase d'authentification, tout étant réalisé dans une même session Apache, avec un résultat sous forme de variable d'environnement (donc pas de problème de confiance / de validation des entrées). | ||
+ | * [http://rnd.feide.no/content/modmellon mod_mellon]: autre module Apache fait par d'autres personnes, pourrait remplacer mod_scalp à terme [http://lists.labs.libre-entreprise.org/pipermail/lasso-devel/2007-October/001905.html]. | ||
+ | * [http://rnd.feide.no/content/javamellon javamellon]: exemple de Service Provider en Java/Lasso | ||
== Exemples == | == Exemples == | ||
* [http://labs.libre-entreprise.org/projects/liberty-sid/ Libertisation de SPIP] | * [http://labs.libre-entreprise.org/projects/liberty-sid/ Libertisation de SPIP] | ||
− | * [http://labs.libre-entreprise.org/projects/wcs/ w.c.s.] est un logiciel d'Entr'Ouvert qui utilise Lasso. | + | * [http://labs.libre-entreprise.org/projects/wcs/ w.c.s.] est un logiciel d'Entr'Ouvert qui utilise Lasso ([http://wcs.labs.libre-entreprise.org/doc/fr/#head-98e2a8ab6cda2102d633b68f413201f8da5ef7fe configuration]) |
+ | * [http://www.entrouvert.com/fr/identite-numerique/demonstration Démo en ligne] | ||
+ | |||
+ | == Installation de test == | ||
Créer une paire de clef: | Créer une paire de clef: | ||
− | + | * Avec GnuTLS: | |
− | + | certtool --generate-privkey --outfile smthing-priv.pem | |
+ | # TODO: export public counterpart | ||
+ | * Avec OpenSSL | ||
+ | openssl genrsa -out smthing-priv.pem | ||
+ | openssl rsa -in smthing-priv.pem -pubout > smthing-pub.pem | ||
Obtenir un fichier XML de IDP: installer Authentic. La doc de référence est INSTALL. Elle est un peu spartiate, voici un complément: | Obtenir un fichier XML de IDP: installer Authentic. La doc de référence est INSTALL. Elle est un peu spartiate, voici un complément: | ||
+ | * Récupérer Authentic | ||
+ | svn checkout svn://labs.libre-entreprise.org/svnroot/authentic/trunk authentic | ||
* Paquets nécessaires: | * Paquets nécessaires: | ||
+ | aptitude install python-scgi libapache2-mod-scgi python-quixote | ||
echo "deb http://deb.entrouvert.org etch main" >> /etc/apt/sources.list | echo "deb http://deb.entrouvert.org etch main" >> /etc/apt/sources.list | ||
aptitude update | aptitude update | ||
− | aptitude install python-lasso | + | aptitude install python-lasso |
− | * | + | * Installer Authentic (/usr/share/authentic/, /usr/lib/python2.4/site-packages/authentic/, /usr/bin/authenticctl.py): |
− | |||
− | |||
− | |||
sudo python setup.py install | sudo python setup.py install | ||
− | + | * Installer les traductions: | |
− | + | aptitude install gettext | |
− | * Démarrer Authentic | + | pushd po/ |
− | sudo | + | make |
+ | make install | ||
+ | popd | ||
+ | * Créer un espace pour les données persistantes: | ||
+ | useradd --home /var/lib/authentic authentic | ||
+ | mkdir -m 755 /var/lib/authentic | ||
+ | chown authentic: /var/lib/authentic | ||
+ | * Démarrer Authentic: | ||
+ | sudo -u authentic authenticctl.py start | ||
* Paramétrer Apache (cf. INSTALL), par exemple pour Apache2+SCGI: | * Paramétrer Apache (cf. INSTALL), par exemple pour Apache2+SCGI: | ||
− | <VirtualHost | + | <VirtualHost *> |
− | + | ServerAdmin webmaster@localhost | |
− | + | ServerName authentic.local | |
− | + | DocumentRoot /usr/share/authentic/web/ | |
− | + | ||
− | + | SCGIMount / 127.0.0.1:3002 | |
− | + | <LocationMatch "^/(css|images|js)/.*"> | |
− | + | SCGIHandler off | |
− | + | </LocationMatch> | |
</VirtualHost> | </VirtualHost> | ||
− | * Suivre INSTALL pour configurer un premier compte, puis demander ''Liberty Identity Provider Metadata''. | + | * Relancer Apache: |
+ | a2enmod scgi | ||
+ | invoke-rc.d apache2 restart | ||
+ | * <code>/etc/hosts</code>: | ||
+ | 127.0.0.1 authentic.local | ||
+ | * Suivre INSTALL, section "First Use" pour configurer un premier compte (http://authentic.local/admin/), puis demander ''Liberty Identity Provider Metadata''. | ||
+ | |||
+ | Obtenir un fichier XML de SP: voir les didactitiels (tutorials) MAIS MAIS MAIS: | ||
+ | * ne mettez surtout pas d'espaces ou retours chariot autour de votre <code>AssertionConsumerServiceURL</code> comme dans l'exemple, car ils ne seront pas nettoyés et SCGI renverra une URL invalide (et du coup une erreur 500) :/ | ||
+ | * le <code>SingleLogoutProtocolProfile</code> est http://projectliberty.org/profiles/slo-sp-soap et non pas http://projectliberty.org/profiles/slo-idp-soap (<code>sp</code>/''service provider'' à la place de <code>idp</code>/''identity provider'') | ||
+ | |||
+ | Un autre exemple: http://wcs.entrouvert.org/liberty/metadata.xml | ||
+ | |||
+ | == Désinstallation == | ||
+ | |||
+ | <pre> | ||
+ | # Lasso | ||
+ | cd /usr/src/la/lasso/ | ||
+ | make uninstall | ||
+ | rm -rf /usr/include/lasso/ | ||
+ | rm -rf /usr/share/doc/lasso/ | ||
+ | |||
+ | # Authentic (no uninstall procedure) | ||
+ | rm -rf /usr/share/authentic/ | ||
+ | rm -rf /var/lib/authentic/ # data | ||
+ | |||
+ | # spkitlasso (TODO: check with newer versions) | ||
+ | rm -rf /usr/share/php/spkitlasso/ | ||
+ | rm -rf /usr/share/spkitlasso/ | ||
+ | rm -rf /var/lib/spkitlasso/ # data | ||
+ | </pre> | ||
== Documentation == | == Documentation == | ||
Ligne 47 : | Ligne 100 : | ||
* [http://lasso.entrouvert.org/documentation/ Page officielle] | * [http://lasso.entrouvert.org/documentation/ Page officielle] | ||
* [http://wiki.entrouvert.org/FrontPage Wiki d'Entr'Ouvert] dont la version wiki de la doc Lasso [http://wiki.entrouvert.org/Lasso]. | * [http://wiki.entrouvert.org/FrontPage Wiki d'Entr'Ouvert] dont la version wiki de la doc Lasso [http://wiki.entrouvert.org/Lasso]. | ||
+ | |||
+ | == Limitations == | ||
+ | |||
+ | * [http://lists.labs.libre-entreprise.org/pipermail/lasso-devel/2007-April/001784.html Gestion d'erreur] améliorable en PHP. La version de développement est en train de se débarrasser de SWIG pour régler la question [http://lists.labs.libre-entreprise.org/pipermail/lasso-devel/2007-October/001906.html] [http://wiki.entrouvert.org/Lasso/Remplacement_de_SWIG]. | ||
== Autres == | == Autres == | ||
Ligne 56 : | Ligne 113 : | ||
* [http://labs.libre-entreprise.org/projects/idpc/ IdPC]: Liberty Alliance Identity Provider as a C CGI program - ancêtre de Authentic? | * [http://labs.libre-entreprise.org/projects/idpc/ IdPC]: Liberty Alliance Identity Provider as a C CGI program - ancêtre de Authentic? | ||
* [http://lasso.entrouvert.org/souk/ Souk]: ce projet, initialement un environnement de test, n'est non seulement plus maintenu mais également [http://labs.libre-entreprise.org/projects/souk/ effacé], les auteurs recommandent d'utiliser Authentic à la place | * [http://lasso.entrouvert.org/souk/ Souk]: ce projet, initialement un environnement de test, n'est non seulement plus maintenu mais également [http://labs.libre-entreprise.org/projects/souk/ effacé], les auteurs recommandent d'utiliser Authentic à la place | ||
+ | * [http://en.wikipedia.org/wiki/SAML SAML]: article sur Wikipédia anglophone |
Version actuelle datée du 11 août 2008 à 11:47
Présentation des prestations de SSO chez Entr'Ouvert.
Les spécifications
- ID-FF 1.2: conçue par le consortium Liberty Alliance
- SAML V2.0 qui fait converger ID-FF et les versions antérieures de SAML, chapeautée par l'OASIS
Les projets
- Lasso: bibliothèque multi-langages pour utiliser un environnement Liberty Alliance
- Authentic: fournisseur d'identités (support LDAP)
- Larpe: reverse proxy, pour gérer Liberty Alliance sans toucher le code de l'application. Attention, cela ne fonctionne pas toujours, voir par exemple les services Libre-Entreprise qui n'ont pas pu être libertisés (cf. liste interne [1]).
- scalp: module Apache pour gérer une partie de la couche SSO.
bzr branch http://perso.entrouvert.org/~fred/bzr/modscalp/
. Cette solution ne gère pas les sessions, ni donc le SingleLogout. Elle simplifie l'implémentation de la phase d'authentification, tout étant réalisé dans une même session Apache, avec un résultat sous forme de variable d'environnement (donc pas de problème de confiance / de validation des entrées). - mod_mellon: autre module Apache fait par d'autres personnes, pourrait remplacer mod_scalp à terme [2].
- javamellon: exemple de Service Provider en Java/Lasso
Exemples
- Libertisation de SPIP
- w.c.s. est un logiciel d'Entr'Ouvert qui utilise Lasso (configuration)
- Démo en ligne
Installation de test
Créer une paire de clef:
- Avec GnuTLS:
certtool --generate-privkey --outfile smthing-priv.pem # TODO: export public counterpart
- Avec OpenSSL
openssl genrsa -out smthing-priv.pem openssl rsa -in smthing-priv.pem -pubout > smthing-pub.pem
Obtenir un fichier XML de IDP: installer Authentic. La doc de référence est INSTALL. Elle est un peu spartiate, voici un complément:
- Récupérer Authentic
svn checkout svn://labs.libre-entreprise.org/svnroot/authentic/trunk authentic
- Paquets nécessaires:
aptitude install python-scgi libapache2-mod-scgi python-quixote echo "deb http://deb.entrouvert.org etch main" >> /etc/apt/sources.list aptitude update aptitude install python-lasso
- Installer Authentic (/usr/share/authentic/, /usr/lib/python2.4/site-packages/authentic/, /usr/bin/authenticctl.py):
sudo python setup.py install
- Installer les traductions:
aptitude install gettext pushd po/ make make install popd
- Créer un espace pour les données persistantes:
useradd --home /var/lib/authentic authentic mkdir -m 755 /var/lib/authentic chown authentic: /var/lib/authentic
- Démarrer Authentic:
sudo -u authentic authenticctl.py start
- Paramétrer Apache (cf. INSTALL), par exemple pour Apache2+SCGI:
<VirtualHost *> ServerAdmin webmaster@localhost ServerName authentic.local DocumentRoot /usr/share/authentic/web/ SCGIMount / 127.0.0.1:3002 <LocationMatch "^/(css|images|js)/.*"> SCGIHandler off </LocationMatch> </VirtualHost>
- Relancer Apache:
a2enmod scgi invoke-rc.d apache2 restart
/etc/hosts
:
127.0.0.1 authentic.local
- Suivre INSTALL, section "First Use" pour configurer un premier compte (http://authentic.local/admin/), puis demander Liberty Identity Provider Metadata.
Obtenir un fichier XML de SP: voir les didactitiels (tutorials) MAIS MAIS MAIS:
- ne mettez surtout pas d'espaces ou retours chariot autour de votre
AssertionConsumerServiceURL
comme dans l'exemple, car ils ne seront pas nettoyés et SCGI renverra une URL invalide (et du coup une erreur 500) :/ - le
SingleLogoutProtocolProfile
est http://projectliberty.org/profiles/slo-sp-soap et non pas http://projectliberty.org/profiles/slo-idp-soap (sp
/service provider à la place deidp
/identity provider)
Un autre exemple: http://wcs.entrouvert.org/liberty/metadata.xml
Désinstallation
# Lasso cd /usr/src/la/lasso/ make uninstall rm -rf /usr/include/lasso/ rm -rf /usr/share/doc/lasso/ # Authentic (no uninstall procedure) rm -rf /usr/share/authentic/ rm -rf /var/lib/authentic/ # data # spkitlasso (TODO: check with newer versions) rm -rf /usr/share/php/spkitlasso/ rm -rf /usr/share/spkitlasso/ rm -rf /var/lib/spkitlasso/ # data
Documentation
- Page officielle
- Wiki d'Entr'Ouvert dont la version wiki de la doc Lasso [3].
Limitations
- Gestion d'erreur améliorable en PHP. La version de développement est en train de se débarrasser de SWIG pour régler la question [4] [5].
Autres
- Candle is a sample Liberty Attribute Provider
- Unwind is a sample Liberty Attributes Consumer
- Expression is a Liberty Alliance, WebDAV and XML based web application framework with its own HTTP server; written in Python
- Lasso Conformance Service Provider is a SAML 2.0 provider aimed to expose every aspect of SAML 2 protocols in the UI so they can be tested in conformance events
- IdPC: Liberty Alliance Identity Provider as a C CGI program - ancêtre de Authentic?
- Souk: ce projet, initialement un environnement de test, n'est non seulement plus maintenu mais également effacé, les auteurs recommandent d'utiliser Authentic à la place
- SAML: article sur Wikipédia anglophone