Serveurs d'authentification : Apereo CAS, Shibboleth IDP, Keycloak, LemonLDAP-NG

Nouveaux venus dans les serveurs d'authentication :
Apereo CAS Keycloak Shibboleth IDP LemonLDAP-NG
Propriétaire Apereo Red Hat Internet2 Hébergé par Worteks et OW2
License Apache Apache Apache GPLv2
Langage Java Java Java Perl
Date 1ère version 2003 2014 2003 2007
Nombre de déploiements dans la féd Educ-Recherche (sans déléguation) ~60 v6
~90 v5/v4/v3
2 ~100 ~10
Installation gradle WAR overlay + java -jar docker ou
download&unzip + kc.sh
download&unzip&install.sh + deploy in tomcat apt/yum/docker + nginx fastcgi conf
Performance bonne bonne bonne si on évite certains attributs (calculés?) bonne
License Apache Apache Apache GPLv2
Taille en kLOC ~400 ~600 ~100 ~100
Nb commits 2022 ~2000 ~1400 ~400 ~800
Développeurs
principaux + 10 commits/an + 5 commits/an
1 + 3 + 5 0 + 18 + 15 2 + 0 + 4 3 + 2 + 2
Temps de démarrage ~60s ~5s ~15s ~1s
Remarques commits anarchiques, pas de tickets cookies sur le domaine
RememberMe oui oui non oui
Stockage sessions mémoire / Redis / Mongo / Memcache / Ehcache / JPA / ... mémoire synchronisé (Infinispan)
autres choix en préparation
mémoire / Memcache / JDBC / JPA (déprécié) fichiers / Redis / SQL / LDAP (doc)
Délégation SAML2 / CAS / OIDC (mais pas de logout sauf SAML2) / Facebook... SAML2 / OIDC / Facebook... SAML2 / CAS (module externe) SAML2 / CAS / OIDC / Facebook... (doc)
Délégation FranceConnect et réconciliation faisable avec interrupt facile en laissant keycloak stocker le "sub" FC dans sa base de données. Sinon regarder SPI N/A faisable avec un plugin. Page de login mixte password/FC compliquée à faire. Logout ok sur certains endpoints...
Kerberos et NTLM popup facile difficile (piste #1 #2) faisable et documenté faisable avec Combination of authentication if($env->{HTTP_USER_AGENT} =~ /Firefox|Kerberos/) then [Kerberos, attrsLDAP] or [LDAP] else [LDAP]
Protocoles en tant que fournisseur d'identité SAML2 / CAS / OIDC SAML2 / CAS / OIDC SAML2 / CAS / OIDC (plugin) SAML2 / CAS / OIDC (doc)
Identity provider CAS - nécessite un plugin
- avec proxy tickets depuis 2024
implémente pas mal de quirks dispo dans Apereo CAS - pas de samlValidate
- SingleLogout backchannel dans la prochaine version
Déclaration des services CAS regexp ou white-list white-list par URL prefix regexp ou white-list white-list par URL prefix (regexp envisagé)
Fédération SPs SAML2 aggregate / MDQ non aggregate / MDQ aggregate
Workflows interrupt en Groovy GUI / SPI en Java/Javascript extensible (en XML/Java/Javascript) configurables et extensible (en Perl)
Prestataire français CAS in the cloud (Jérôme Leleu) Worteks ? Worteks
documentation manque d'exemples
nécessité d'aller sur fawnoos.com
assez bonne moyenne assez bonne
difficulté de prise en main difficile facile difficile moyen

SATOSA, Ory Hydra

Permettent :
Ory Hydra SATOSA
Propriétaire Ory IdentityPython (SUNET, GEANT)
License Apache Apache
Langage Go Python
Taille en kLOC ~50 ~10+~70
Nb commits 2022 ~600 ~60+~100
Développeurs
principaux + 10 commits/an + 5 commits/an
1 + 3 + 2 1 + 2 + 4
Délégation DIY : CAS SAML2 / OIDC
Protocoles en tant que fournisseur d'identité OIDC SAML2 / OIDC
Fédération IDPs SAML2 non aggregate / MDQ
Workflows très adaptable ?
documentation bonne bof ?

Liens