Délégation de l'authentification au CAS et support de l'authentification forcée
1. Qu'est-ce que l'authentification forcée ?
L'authentification forcée (forced authentication en anglais), est une fonctionnalité de SAML, qui permet à un SP de demander à l'IdP de réauthentifier l'utilisateur - même si celui-ci dispose déjà d'une session SSO.
Les SP liés à ERASMUS font ce type de demande.
2. Quel est le problème ?
Si votre IdP ne délègue pas l'authentification (à un CAS par exemple), vous n'êtes normalement pas impacté.
Par contre, si votre IdP délègue au CAS, il utilise le plugin authn/External
qui ne supporte pas l'authentification forcée.
3. Comment activer l'authentification forcée ?
Ca dépend de votre version d'IdP.
Pour plus de détails : https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631607/ExternalAuthnConfiguration.
3.1 IDP 4.1 et version plus récente
il faut ajouter/mettre à jour la propriété idp.authn.External.forcedAuthenticationSupported
dans le fichier /opt/shibboleth-idp/conf/authn/authn.properties
:
- /opt/shibboleth-idp/conf/authn/authn.properties
... #### External #### ... idp.authn.External.forcedAuthenticationSupported = true ...
3.2 IDP 4.0
Voici malgré tout les indications pour activer l'authentification forcée avec le plugin authn/External
.
Il faut éditer le fichier /opt/shibboleth-idp/conf/authn/general-authn.xml
:
- /opt/shibboleth-idp/conf/authn/general-authn.xml
<?xml version="1.0" encoding="UTF-8"?> <beans ...> ... <util:list id="shibboleth.AvailableAuthenticationFlows"> ... <bean id="authn/External" parent="shibboleth.AuthenticationFlow" p:nonBrowserSupported="false" p:forcedAuthenticationSupported="true" /> <!-- Attribut à ajouter --> ... </util:list> ... </beans>
3.3 IDP 3.4
Nous n'avons pas connaissance que l'IdP 3.4 avec délégation au CAS soit sujet à ce problème.