Authentification mixte

Est-il possible de mettre en place une double authentification des utilisateurs sur la plateforme, exemple

  • interne : SSO SAML V2 (mode1)
  • externe - via le référentiel des utilisateurs simpicite (mode2)
    Je suppose que je teste le mode 1 et si ko je teste le mode 2.

Par construction, les protocoles avec délégation d’identification/authentification (SAML, OAuth/OAuth2, OpenID, … ou autres SSO propriétaires) dans leur mode nominal ne se prêtent pas à une logique “j’en essaie un et si ça marche pas j’en essaie un autre”.

En effet l’appelant n’est jamais notifié des échecs d’identification/authentification (et n’a bien entendu jamais connaissance des username/password saisis sur la page du provider), même en cas d’abandon (qui n’est pas toujours proposée par le provider).

Il faut donc se mettre dans une logique où c’est l’utilisateur qui choisit son mode d’identification/authentification (quitte à revenir en arrière et en choisir un autre s’il n’arrive pas avec le premier qu’il a choisi).

Si une des options d’identification/authentification proposées est l’identification/authentification interne Simplicité en mode Realm ou JAAS (selon le mode de déploiement choisi) il faut juste développer un Realm ou module JAAS qui saura être “passant” s’il constate qu’une identification/authentification déléguée à réussie.

PS: En 4.0 Simplicité exposera, de manière optionnelle, un provider OAuth2 interne qui permettra de se passer totalement de Realm/JAAS notamment dans ces logiques d’identification/authentification multi-provider.

Le provider OAuth2 interne (simplicite) a été mis en place en 4.0 et backporté en 3.2 et il est possible dans ces version de laisser choisir entre plusieurs providers OAuth2 (ex: interne et Google)

Cf. https://www.simplicite.io/resources/documentation/99-misc/tomcat-oauth2.md