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

Si vous êtes en IDP 4.0, nous vous incitons à migrer en IDP 4.1. La procédure est normalement simple : https://shibboleth.atlassian.net/wiki/spaces/IDP4/pages/1265631513/Upgrading#Upgrading-to-V4.1-and-Beyond.


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.