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 |
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 ? |