Introduction Glossaire Guide utilisateur Guide administrateur fonctionnel Guide administrateur technique Prérequis pour Maarch Courrier Installation Breaking Change Exploitation Monter un disque partagé avec Windows sur le serveur Maarch Courrier Montage de disque Connexion aux scanners de bureau Connexion LDAP Envoi de mails Addin outlook Personnalisation des libellés Installation du docker OnlyOffice Installation du docker Collabora Online Installation du docker Grafana Paramétrage de l'édition des documents Edition de documents avec java Déploiement du Maarch2Maarch Filtrage des annotations Interconnexion avec un parapheur distant Archivage des courriers Envoyer des plis postaux vers Maileva Connexion via Shibboleth Mécanisme de temps d'inactivité Compatibilité outils externes Recommandations de sauvegarde Purge des fichiers de logs et répertoires temporaires Planification des tâches Purge des courriers après votre recette Préciser au reverse proxy le protocole https Matrice des flux Créer un service pour fermer les connexions persistantes de postgres Paramétrage de la langue serveur Les étapes clés pour déployer une nouvelle instance Connexion avec Keycloak Connexion avec Azure AD Connexion avec CAS Paramétrage d'un relay smtp via postfix Prise en compte des formulaires PDF Édition avec Office 365 via Sharepoint Online Script d’indexation plein texte Lecture automatique de document (LAD) Paramétrage des adresses e-mail externes Mise en oeuvre de docker Architecture technique

Connexion via Shibboleth

Présentation de Shibboleth

Shibboleth est un mécanisme de fédération d'identités, développé par le consortium Internet2, qui regroupe 207 universités et centres de recherches.

Maarch Courrier offre la possibilité de passer par Shibboleth pour gérer l'authentification.

Voici une description des services de la suite logicielle Shibboleth :

https://www.projet-plume.org/fiche/shibboleth

Installation du Service Provider Shibboleth sur centos

Utiliser l'installation RPM

https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLinuxRPMInstall

Installation des dépendances

    yum install mod_ssl

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/libcurl-openssl-7.61.0-1.1.x86_64.rpm
    rpm -Uvh libcurl-openssl-7.61.0-1.1.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/liblog4shib2-2.0.0-3.1.x86_64.rpm
    rpm -Uvh liblog4shib2-2.0.0-3.1.x86_64.rpm

    yum install libmemcached

    wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
    rpm -Uvh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm 

    wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/unixODBC-2.3.1-11.el7.x86_64.rpm
    rpm -Uvh unixODBC-2.3.1-11.el7.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/libxerces-c-3_2-3.2.1-1.1.x86_64.rpm
    rpm -Uvh libxerces-c-3_2-3.2.1-1.1.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/libxml-security-c20-2.0.1-3.1.x86_64.rpm
    rpm -Uvh libxml-security-c20-2.0.1-3.1.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/libxmltooling8-3.0.2-3.1.x86_64.rpm
    rpm -Uvh libxmltooling8-3.0.2-3.1.x86_64.rpm 

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/libsaml10-3.0.0-1.1.x86_64.rpm
    rpm -Uvh libsaml10-3.0.0-1.1.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/opensaml-schemas-3.0.0-1.1.x86_64.rpm
    rpm -Uvh opensaml-schemas-3.0.0-1.1.x86_64.rpm

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/xmltooling-schemas-3.0.2-3.1.x86_64.rpm
    rpm -Uvh xmltooling-schemas-3.0.2-3.1.x86_64.rpm

### Installing shibboleth 3

    wget http://download.opensuse.org/repositories/security://shibboleth/CentOS_7/x86_64/shibboleth-3.0.2-1.1.x86_64.rpm
    rpm -Uvh shibboleth-3.0.2-1.1.x86_64.rpm

Après l'installation

Les fichiers de configuration de Shibboleth seront placés dans /etc/shibboleth/ et la configuration Apache requise dans /etc/httpd/conf.d/shib.conf shibd sera installé dans /usr/sbin et peut être géré à l'aide du service et chkconfig (sur les plates-formes System V) ou avec systemctl (sur les plates-formes systemd, certaines informations supplémentaires sont disponibles).

Une version appropriée de mod_shib et d'autres modules pluggables sera installée dans /usr/lib64/shibboleth.

Configuration Basique

Dans httpd.conf, l'utilisation de la fonctionnalité RequestMap n'est pas recommandée avec Apache, mais son utilisation nécessite que la directive UseCanonicalName soit définie. Assurez-vous que la directive ServerName est correctement définie et qu’Apache est en cours de démarrage avec SSL activé. Redémarrez Apache.

/usr/sbin/shibd doit être démarré et exécuté indépendamment pour traiter les demandes. Le démon doit être chargé et surveillé avec tous les autres services principaux.

/sbin/service shibd start

Par défaut, le module Shibboleth est configuré pour enregistrer les informations de la part d’Apache dans /var/log/shibboleth-www/native.log. shibd crée ses propres journaux séparés dans/var/log/shibboleth

Démarrage rapide

Vérification de la configuration de shibboleth

shibd -t

Le plus Important est que la dernière ligne de la sortie soit :

"overall configuration is loadable, check console for non-fatal problems"

Configurer apache avec https

voir l'exemple :

https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-apache-for-centos-7

Tutoriel pour shibboliser votre application Maarch Courrier

suivre à partir du chapitre 2.3 : https://services.renater.fr/federation/docs/installation/sp_juin2012

Exemple à partir du service d'intégration Shibboleth de Maarch Courrier

Configuration d'Apache

    nano /etc/httpd/conf.d/shib.conf
    # https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig

    # RPM installations on platforms with a conf.d directory will
    # result in this file being copied into that directory for you
    # and preserved across upgrades.

    # For non-RPM installs, you should copy the relevant contents of
    # this file to a configuration location you control.

    #
    # Load the Shibboleth module.
    #
    LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so

    #
    # Turn this on to support "require valid-user" rules from other
    # mod_authn_* modules, and use "require shib-session" for anonymous
    # session-based authorization in mod_shib.
    #
    ShibCompatValidUser Off

    #
    # Ensures handler will be accessible.
    #
    <Location /Shibboleth.sso>
    AuthType None
    Require all granted
    </Location>

    #
    # Used for example style sheet in error templates.
    #
    <IfModule mod_alias.c>
    <Location /shibboleth-sp>
        AuthType None
        Require all granted
    </Location>
    Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css
    </IfModule>

    #
    # Configure the module for content.
    #
    # You MUST enable AuthType shibboleth for the module to process
    # any requests, and there MUST be a require command as well. To
    # enable Shibboleth but not specify any session/access requirements
    # use "require shibboleth".
    #

    <Directory "/var/www/html/MaarchCourrier/cs_cd65/">
        AuthType shibboleth
        ShibRequestSetting requireSession 1
        ShibRequestSetting applicationId default
        require shib-session

        AllowOverride All
        Options -Indexes
        Options FollowSymLinks Includes ExecCGI
        <FilesMatch ".*">
            Order deny,allow
            Deny from all
        </FilesMatch>
        # Root to allow index.php
        <FilesMatch "^$">
            Order allow,deny
            Allow from all
        </FilesMatch>
        # Core root
        <FilesMatch "^(index|ws_server|static|merged_js|merged_css|reopen|applet_launcher|applet_controller|log)\.php$">
            Order allow,deny
            Allow from all
        </FilesMatch>
        # App static files
        <FilesMatch "\.(css|js|jpg|jpeg|png|gif|ttf|woff|woff2)$">
            Order allow,deny
            Allow from all
        </FilesMatch>
        # App tools files
        <FilesMatch "\.(htm|html|jar|jnlp)$">
            Order allow,deny
            Allow from all
        </FilesMatch>
    </Directory>

    # Activation globale de l'authentification Shibboleth pour toutes les routes
    # a ne pas activer pour l'édition de doc
    #  <Location />
    #    AuthType shibboleth
    #    Require shibboleth
    #  </Location>

    # Pour l'édition de documents, pas d'authent shibboleth
    <Directory /var/www/html/MaarchCourrier/modules/content_management/dist>
        Satisfy Any
        Allow from all
        AuthType None
        Require all granted
    </Directory>
    <Location /MaarchCourrier/cs_cd65/rest/>
        Satisfy Any
        Allow from all
        AuthType None
        Require all granted
    </Location>

    SetEnv MAARCH_TMP_DIR "/tmp"

    <Directory /tmp/*.jnlp>
        Satisfy Any
        Allow from all
        AuthType None
        Require all granted
    </Directory>

Configuration de Shibboleth

Ouvrir /etc/shibboleth/shibboleth2.xml

    <SPConfig xmlns="urn:mace:shibboleth:3.0:native:sp:config"
    xmlns:conf="urn:mace:shibboleth:3.0:native:sp:config"
    clockSkew="180">

        <OutOfProcess tranLogFormat="%u|%s|%IDP|%i|%ac|%t|%attr|%n|%b|%E|%S|%SS|%L|%UA|%a" />

        <ApplicationDefaults entityID="https://92.243.8.134"
            REMOTE_USER="eppn subject-id pairwise-id persistent-id"
        cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1">

            <Sessions lifetime="28800" timeout="3600" relayState="ss:mem"
                    checkAddress="false" handlerSSL="true" cookieProps="https">

                <SSO discoveryProtocol="SAMLDS" discoveryURL="https://discovery.renater.fr/test">
                SAML2 SAML1
            </SSO>

                <Logout>SAML2 Local</Logout>

                <LogoutInitiator type="Admin" Location="/Logout/Admin" acl="127.0.0.1 ::1" />

                <Handler type="MetadataGenerator" Location="/Metadata" signing="false"/>

                <Handler type="Status" Location="/Status" acl="127.0.0.1 ::1"/>

                <Handler type="Session" Location="/Session" showAttributeValues="false"/>

                <Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
            </Sessions>

            <Errors supportContact="root@localhost"
                    metadata="metadataError_fr.html"
                    access="accessError_fr.html"
                    ssl="sslError_fr.html"
                    localLogout="localLogout_fr.html"
                    globalLogout="globalLogout_fr.html"
                    logoLocation="/shibboleth-sp/logo.jpg"
                styleSheet="/shibboleth-sp/main.css"/>

            <!-- Meta-données de la fédération de Test RENATER -->
            <MetadataProvider type="XML" url="https://metadata.federation.renater.fr/test/preview/preview-all-renater-test-metadata.xml"
                backingFilePath="preview-all-renater-test-metadata.xml" reloadInterval="7200">
                <MetadataFilter type="Signature" certificate="renater-metadata-signing-cert-2016.pem"/>
            </MetadataProvider>

            <AttributeExtractor type="XML" validate="true" reloadChanges="false" path="attribute-map.xml"/>

            <AttributeFilter type="XML" validate="true" path="attribute-policy.xml"/>

            <CredentialResolver type="File" use="signing"
                    key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/>
            <CredentialResolver type="File" use="encryption"
                    key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/>

            <CredentialResolver type="File" key="sp-key.pem" certificate="sp-cert.pem" />

            </ApplicationDefaults>

        <SecurityPolicyProvider type="XML" validate="true" path="security-policy.xml"/>

        <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>

    </SPConfig>

Configuration de Maarch Courrier pour activer le mode d'authentification Shibboleth

Copier le fichier config/login_method.xml dans votre custom avec la même arborescence, et modifiez-le comme ceci.

    <METHOD>
        <ID>sso</ID>
        <ENABLED>true</ENABLED>
    </METHOD>

Il faut également configurer l'en-tête dans l'administration. Voir la configuration.

results matching ""

    No results matching ""