Mod Auth OpenIDC

Configuration

  • Installer mod_auth_openidc pour Apache : https://github.com/zmartzone/mod_auth_openidc/
    Utiliser apt install libapache2-mod-auth-openidc pour un système Debian.

  • Charger le module dans Apache via httpd.conf :

    LoadModule auth_openidc_module modules/mod_auth_openidc.so
    Utiliser a2enmod mod_auth_openidc et redémarrer Apache sur Debian

  • Compléter le fichier httpd.conf de votre site.
    L’exemple ci-dessous est à adapter en fonction de votre contexte.

    ‹VirtualHost *:443›
        # Server setup
        ServerName myapplication.tld
        # … your particular directives …
        # OpenID Connect setup
        OIDCProviderMetadataURL https://masociete.trustelem.com/app/146XXX/.well-known/openid-configuration
        OIDCClientID trustelem.oidc.XXXXXXXXX
        OIDCClientSecret XXXXXXXX
        OIDCRedirectURI https://myapplication.tld/redirect_uri
        OIDCCryptoPassphrase XXXXXXXX
        OIDCScope “openid”
        ‹Location /sso-login›
            AuthType openid-connect
            Require valid-user
        ‹/Location›
        # Specific session cookie durations (seconds)
        OIDCSessionInactivityTimeout 300
        OIDCSessionMaxDuration 36000
    ‹/VirtualHost›
    
    OIDCCryptoPassphrase est notamment utilisé pour le chiffrement des cookies de session utilisateurs.

  • Pour réaliser le logout des utilisateurs depuis l’intérieur de l’application, il faut associer une URL de déconnexion à un élément HTML tel qu’un bouton ou un lien.
    Cette URL est composée de la redirect_uri avec un paramètre logout= et de l’URL de post-logout au format URL-encodé.
    Par exemple, l’URL de déconnexion pourrait être : https://myapplication.tld/redirect_uri?logout=https%3A%2F%2Fmyapplication.tld

  • Paramétrer Trustelem avec les informations suivantes :
    - RedirectURI : cette URL est définie dans la configuration du web serveur (voir le fichier httpd.conf).
    Avec l’exemple précédent, la RedirectURI serait : https://myapplication.tld/redirect_uri
    - URL de login : l’URL qui initie le login OIDC. Elle est utilisée pour diriger l’utilisateur vers l’application depuis son tableau de bord Trustelem.
    Avec l’exemple précédent, l’URL de login serait : https://myapplication.tld/sso-login
    - PostLogoutRedirectURI : l’URL qui indique où aller après une déconnexion. Elle est généralement définie dans l’élément HTML de déconnexion de votre application.
    Avec l’exemple de logout précédent, l’URL de PostLogout serait : https://myapplication.tld

Remarques

  • Les attributs renvoyés par Trustelem sont mis à disposition à l’application sous la désignation $_SERVER[“OIDC_CLAIM_nom”], où le nom est défini dans le script Trustelem appelé paramétrage des attributs.
    Par exemple, si vous ajoutez l’attribut :

    claims[“attr1”] = user.firstname;
    Vous trouverez le prénom de l’utilisateur dans la variable $_SERVER[“OIDC_CLAIM_attr1”]

  • Si l’utilisateur authentifié avec mod_auth_openidc n’existe pas dans l’application, nous conseillons de le créer automatiquement à partir des attributs transmis par Trustelem.
    Ce système d’auto-provisioning permet de mettre un place une gestion des habilitations interne à l’application, fondée sur les attributs utilisateur.
    Ce mécanisme complète le contrôle d’accès aux applications réalisé par Trustelem.