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
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 :

...

Bloc de code
  idp.session.enabled = false

service proxy-cas avec clearpass

Pour l'ENT avec la partie esup-filemanager qui utilise les mécanismes de proxy-cas / clearpass, la fonctionnalité du passage de mot de passe en tant qu'attribut (chiffré) dit "clearpass" est configuré ainsi dans le fichier /etc/cas/services/esup_filemanager_univ_rouen_fr-2.json

Bloc de code
{
	"@class" : "org.apereo.cas.services.RegexRegisteredService",
    "serviceId": "^https?://([A-Za-z0-9_-]+\\.)*normandie-univ\\.fr(/.*)?",
    "name": "Service opéré par la COMUE",
    "informationUrl": null,
    "privacyUrl": null,
    "id": 3,
    "description": "Vous avez demandé à vous connecter à un service proposé par la COMUE Normandie Université.",
	"evaluationOrder":3,
    "usernameAttributeProvider":
    {
      "@class": "org.apereo.cas.services.PrincipalAttributeRegisteredServiceUsernameProvider",
      "canonicalizationMode": "NONE",
      "encryptUsername": "false",
      "usernameAttribute": "uid"
    }
    "proxyPolicy" : {
    "@class" : "org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy",
    "pattern" : "^https?://.*"
    },
    "attributeReleasePolicy" : {
	"@class" : "org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy",
	"authorizedToReleaseCredentialPassword" : true,
    },
    "publicKey" : {
	"@class" : "org.apereo.cas.services.RegisteredServicePublicKeyImpl",
	"location" : "/etc/cas/univ-rouen-esup-filemanager-public.key",
	"algorithm" : "RSA"
    }
}


Au niveau d'esup-filemanager, la configuration d'une authentification via ce mécanisme se fait alors ainsi : 

Bloc de code
  <bean name="univ_rouen_cas_clearpass_auth" class="org.esupportail.portlet.filemanager.services.auth.cas.ClearPassUserCasAuthenticatorService"
    scope="session">
        <property name="domain" value="ur"/>
      <property name="userCasAuthenticatorServiceRoot" ref="casUserAuthenticationServiceRoot"/>
      <property name="pkcs8Key" value="/opt/tomcat-esup/webapps/esup-filemanager/WEB-INF/classes/univ-rouen-esup-filemanager-private.p8"/>
  </bean>

ldap policy

A noter l'usage de ldap policy à l'Université de Rouen Normandie : on ajoute l'attribut ldap PwdAccountLockedTime pour verrouiller les comptes détectées comme corrompues de manière automatique (via l'usage de fail2ban notamment).

...