4933
Commentaire:
|
5164
Mise à jour
|
Texte supprimé. | Texte ajouté. |
Ligne 10: | Ligne 10: |
* sogo (nightly) : 2.0.5.20130405-1 | * sogo : 2.2.16-1 == Configuration de SOGo == * modification de la config SOGo : {{{ /* SAML */ SOGoAuthenticationType = saml2; SOGoSAML2CertificateLocation = "/etc/ssl/certs/saml-sogo-test-saml.ca.auf.org-cert.pem"; SOGoSAML2PrivateKeyLocation = "/etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem"; SOGoSAML2IdpCertificateLocation = "/etc/ssl/certs/GandiStandardSSLCA.pem"; SOGoSAML2IdpMetadataLocation = "/etc/ssl/saml-id.auf.org-metadata.xml"; SOGoSAML2IdpPublicKeyLocation = /etc/ssl/certs/_.auf.org-cert.pem; SOGoSAML2LogoutEnabled = YES; SOGoSAML2LogoutURL = "http://sogo.auf.org"; }}} * Adapter les droits {{{ chgrp sogo /etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem chmod g+r /etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem adduser sogo ssl-cert }}} * restart de SOGo |
Ligne 101: | Ligne 125: |
== Configuration de SOGo == * modification de la config SOGo : {{{ defaults -u sogo write sogod SOGoAuthenticationType "saml2" sogod SOGoSAML2IdpCertificateLocation /etc/ssl/certs/GandiStandardSSLCA.pem sogod SOGoSAML2IdpMetadataLocation /etc/ssl/saml-id.auf.org-metadata.xml sogod SOGoSAML2IdpPublicKeyLocation /etc/ssl/saml-id.auf.org-cert.pem sogod SOGoSAML2CertificateLocation /etc/ssl/certs/saml-sogo-test-saml.ca.auf.org-cert.pem sogod SOGoSAML2LogoutEnabled YES sogod SOGoSAML2PrivateKeyLocation /etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem }}} * restart de SOGo |
Sommaire
Tests d'intégration SOGo et SAML
Serveur de test
copie du CT sogo-test.ca.auf.org ==> sogo-test-saml.ca.auf.org
- installation en local de : dovecot-imapd (1:1.2.15-7) + postfix
- sogo : 2.2.16-1
Configuration de SOGo
- modification de la config SOGo :
/* SAML */ SOGoAuthenticationType = saml2; SOGoSAML2CertificateLocation = "/etc/ssl/certs/saml-sogo-test-saml.ca.auf.org-cert.pem"; SOGoSAML2PrivateKeyLocation = "/etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem"; SOGoSAML2IdpCertificateLocation = "/etc/ssl/certs/GandiStandardSSLCA.pem"; SOGoSAML2IdpMetadataLocation = "/etc/ssl/saml-id.auf.org-metadata.xml"; SOGoSAML2IdpPublicKeyLocation = /etc/ssl/certs/_.auf.org-cert.pem; SOGoSAML2LogoutEnabled = YES; SOGoSAML2LogoutURL = "http://sogo.auf.org";
Adapter les droits
chgrp sogo /etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem chmod g+r /etc/ssl/private/saml-sogo-test-saml.ca.auf.org-key.pem adduser sogo ssl-cert
- restart de SOGo
installation des paquets requis
lasso (on appliquera le patch de Wolfgang)
- pré-requis :
- aptitude install zlib1g-dev
- aptitude install pkg-config
configure: error: Package requirements (glib-2.0 >= 2.4.0 gobject-2.0 >= 2.4.0 libxml-2.0 xmlsec1 >= 1.2.6 xmlsec1-openssl >= 1.2.6 openssl) were not met :
aptitude install libglib2.0-dev (==> glib-2.0 >= 2.4.0 gobject-2.0)
aptitude install libxmlsec1-dev ==> libxml-2.0 xmlsec1 >= 1.2.6 xmlsec1-openssl >= 1.2.6 openssl
appliquer le patch de Inverse : patch -p0 lasso-export.diff
./configure ; make ; make install (lire le INSTALL)
- pré-requis :
crudesaml (http://ftp.espci.fr/pub/crudesaml/crudesaml-1.4.tar.gz)
- pré-requis :
- aptitude install libsasl2-dev
- aptitude install libpam0g-dev
- modif du fichier plugin_common.h
#include <saslplug.h> : +typedef int (*sasl_callback_ft)(void);
- patch apporté par JC
2ème problème : il y avait un souci dans l'interprétation des dates SAML par le module PAM. Nous avons « hacké » ça en quelques lignes de code C pour supprimer automatiquement les microsecondes quand elles sont présentes : elles ne sont pas vraiment utiles et elles ne sont pas comprises par la fonction C "strptime".
root@sogo-test-saml:/# git diff usr/local/src/crudesaml-1.4/saml.c diff --git a/usr/local/src/crudesaml-1.4/saml.c b/usr/local/src/crudesaml-1.4/saml.c index 415479a..f3121bb 100644 --- a/usr/local/src/crudesaml-1.4/saml.c +++ b/usr/local/src/crudesaml-1.4/saml.c @@ -153,9 +153,15 @@ saml_get_date(date) struct tm tm; const char *format = "%Y-%m-%dT%TZ"; - if (strptime(date, format, &tm) == NULL) - return (time_t)-1; + char *date2 = strdup(date); + if (strchr(date2,'.') != NULL && strchr(date2,'Z') != NULL) + strcpy(strchr(date2,'.'), strchr(date2,'Z')); + if (strptime(date2, format, &tm) == NULL){ + free(date2); + return (time_t)-1; + } + free(date2); return (timegm(&tm)); } root@sogo-test-saml:/#
./configure && make && make install
- les librairies aux bons endroits :
root@sogo-test-saml:/usr/lib/sasl2# chmod -x /lib/sasl2/*.so* root@sogo-test-saml:/usr/lib/sasl2# cp -aiv /lib/sasl2/*.so* /usr/lib/i386-linux-gnu/sasl2/ root@sogo-test-saml:/usr/lib/sasl2# chown root:root /usr/local/lib/security/*.so* root@sogo-test-saml:/usr/lib/sasl2# chmod -x /usr/local/lib/security/*.so* root@sogo-test-saml:/usr/lib/sasl2# cp -aiv /usr/local/lib/security/pam_saml.so.0.2.0 /lib/i386-linux-gnu/security/pam_saml.so
- vérification
root@sogo-test-saml:/usr/lib/sasl2# aptitude install sasl2-bin root@sogo-test-saml:/usr/lib/sasl2# saslpluginviewer Plugin "saml" [loaded], API version: 4 SASL mechanism: SAML, best SSF: 0 security flags: NO_ANONYMOUS features: WANT_CLIENT_FIRST|PROXY_AUTHENTICATION
- pré-requis :
Dovecot pour authentification SAML
/etc/pam.d/dovecot
#%PAM-1.0 # SAML : cf man pam_saml # http://www.ossir.org/paris/supports/2010/2010-02-09/saml.pdf #auth required pam_saml.so grace=86400 userid=uid idp=/etc/ssl/saml-id.auf.org-metadata.xml trusted_sp=https://sogo-test-saml.ca.auf.org/SOGo/saml2-metadata saml_check_session_timeframe=0 saml_check_assertion_timeframe=0 auth required pam_saml.so grace=600 userid=uid idp=/etc/ssl/saml-id.auf.org-metadata.xml trusted_sp=https://sogo-test-saml.ca.auf.org/SOGo/saml2-metadata account required pam_permit.so session required pam_permit.so
Côté IdP
Les attributs à fournir :
- pour SOGo : nom, prénom, adél
pour Dovecot : nom, prénom, adél, uid (pour nous (id.auf) Attribute policy : Default+)