ESUP-OTP

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagejava
import java.util.*
import org.apereo.cas.interrupt.InterruptResponse

def run(principal, attributes, service, registeredService, requestContext, logger, ... args) {
    def ctx = org.apereo.cas.util.spring.ApplicationContextProvider.getApplicationContext()
    def esupOtpService = ctx.getBean("esupOtpService")
    def esupOtpUserInfos = esupOtpService.getUserInfos(principal.id)
    def esupOtpMethods = esupOtpUserInfos.get("user").get("methods").toMap().values()
    def oneMfaMethodIsActive = esupOtpMethods.stream().anyMatch { method ->
        method instanceof Map && method.get("active")
    }
    if (!oneMfaMethodIsActive) {
        def message = "Vous n'avez pas encore activé votre authentification renforcée avec ESUP-OTP, il serait souhaitable de le faire."
        def links = ["Accéder à ESUP-OTP pour activer l'authentification renforcée" : "https://esup-otp-manager.univ-ville.fr/preferences"]
        def block = false       // L'utilisateur peut continuer sans activer le MFA
        def ssoEnabled = false  // On n’établit pas de session SSO tant qu’il n’a pas vu ce message
        return new InterruptResponse(message, links, block, ssoEnabled)
    }
    return null
}

...

  • Il interroge le service esupOtpService pour connaître les méthodes MFA activées de l’utilisateur.

  • Si aucune méthode n’est active :

    • Il il affiche un message incitant à activer le MFA ; ce message est affiché dès la première authentification (TGT), mais aussi à chaque authentification sur chaque service (ST), ce grâce au ssoEnabled valué à false.

    • il Il fournit un lien vers l’interface de gestion des préférences MFA ;Il désactive le SSO

    • (ssoEnabled = false) pour forcer l’affichage de ce message à chaque authentification tant que le MFA n’est pas activétout en lui permettant tout de même d'accéder au service demandé, ce grâce au block valué à false.

  • Si au moins une méthode est active, aucun message n’est affiché.

...