==========================
libapache2-mod-auth-mellon
==========================
This is a SAML client, to connect to an SAML Identity Provider
e.g. :doc:`simplesamlphp`. It uses the :doc:`lasso` library.
Test install for bullseye/buster/stretch:
.. code-block:: bash
apt install libapache2-mod-auth-mellon apache2 ssl-cert
# https://github.com/latchset/mod_auth_mellon/
cat <<'EOF' >> /etc/apache2/mods-enabled/auth_mellon.conf
Require valid-user
AuthType "Mellon"
MellonEnable "auth"
MellonUser "uid"
#MellonRequire "eduPersonAffiliation" "employee"
MellonEndpointPath "/secret/endpoint"
MellonSPPrivateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
MellonSPCertFile /etc/ssl/certs/ssl-cert-snakeoil.pem
MellonIdPMetadataFile /etc/apache2/mellon/idp-metadata.xml
# debug
MellonSamlResponseDump On
MellonSessionDump On
AddHandler cgi-script .cgi
Options +ExecCGI
EOF
# Install your IdP's metadata in /etc/apache2/mellon/idp-metadata.xml
# For SimpleSAMPLphp, get it from Federation > Show metadata
service apache2 restart
curl http://$(hostname -f)/secret/endpoint/metadata
# Register this metadata in your IdP
# For SimpleSAMLphp, copy-paste it in Federation > Tools > XML to
# SimpleSAMLphp metadata converter, and add the result to
# /etc/simplesamlphp/metadata/saml20-sp-remote.php
# Quick debug page
mkdir /var/www/html/secret/
cat <<'EOF' > /var/www/html/secret/index.cgi
#!/bin/bash
echo "Content-Type: text/html"
echo
echo "Welcome $REMOTE_USER"
echo "logout"
echo "
"
env
echo "
"
EOF
chmod 755 /var/www/html/secret/index.cgi
a2enmod cgid
service apache2 restart
# http://localhost/secret/
The logout link sends an error (``apache2/error.log`` mentions an
issue with signature) but does log out.
| Copyright (C) 2025 Sylvain Beucler