...
contexte
Eté 2021, l'Université de Rouen Normandie a procédé à une montée de version de son service d'authentification CAS en 6.4.0 (puis 6.4.1 en octobre 2021)
...
| Bloc de code |
|---|
import java.util.*
class SampleGroovyEventResolver {
def String run(final Object... args) {
def service = args[0]
def registeredService = args[1]
def authentication = args[2]
def httpRequest = args[3]
def logger = args[4]
def mobile = authentication.principal.attributes.mobile
def ip = httpRequest.getRemoteAddr()
def memberOf = authentication.principal.attributes.memberOf
/*
logger.info("ip : [{}]", httpRequest.getRemoteAddr())
logger.info("mobile : [{}]", mobile)
logger.info("registeredService.id : [{}]", registeredService.id)
*/
if ((int)registeredService.id in [22] && 'cn=from.grouper.admin,ou=groups,dc=univ-rouen,dc=fr' in memberOf) {
logger.warn("mfa required for grouper !", authentication.principal.id)
return "mfa-esupotp"
}
if(!('cn=from.cas.otp,ou=groups,dc=univ-rouen,dc=fr' in memberOf)) {
return null;
}
if ((int)registeredService.id in [12,13,14,18,21,22] && !ip.startsWith("10.0.1.")) {
logger.warn("mfa for [{}] !", authentication.principal.id)
return "mfa-esupotp"
}
if ((int)registeredService.id in [11, 18] && !ip.startsWith("10.0.1.") && 'cn=for.multipass.admin,ou=groups,dc=univ-rouen,dc=fr' in memberOf) {
logger.warn("mfa for [{}] !", authentication.principal.id)
return "mfa-esupotp"
}
return null
}
}
|
services
...
distinction d'un service provider shibboleth
Le service grouper qui est une application shibbolethisée est détecté via un service spécifique porté par /etc/cas/services/grouper_univ_rouen_fr-22.json :
...