Question / Problème
Il est possible de configurer plusieurs annuaires et serveurs LDAP par rapport auxquels s'authentifier. Pour ce faire, plusieurs sections LDAPLoginModule doivent être configurées.
Depuis CRX2.0, plusieurs configurations de LDAPLoginModule ne sont plus efficaces, une configuration est donc utilisée. Cela signifie que l'authentification LDAP via plusieurs annuaires n'est pas possible.
Réponse / Résolution
Il existe une façon détournée de s'authentifier via plusieurs serveurs LDAP. Le principal problème est qu'avec CRX2.0, l'attribut principal_provider.name qui fournit essentiellement l'identifiant unique d'un annuaire LDAP a été déprécié. À sa place, l'attribut principal_provider.class est utilisé comme identifiant unique.
Comme solution à ce problème, des noms de classe uniques doivent être configurés pour l'attribut principal_provider.class pour chaque LDAPLoginModule configuré. Joint à cet article est un fichier contenant 6 classes uniques qui étendent la classe par défaut : com.day.crx.security.principals.LDAPPrincipalProvider class:
- com.day.daycare.ldap.LDAP1
- com.day.daycare.ldap.LDAP2
- com.day.daycare.ldap.LDAP3
- com.day.daycare.ldap.LDAP4
- com.day.daycare.ldap.LDAP5
- com.day.daycare.ldap.LDAP6
Déployer le fichier multi-ldap-patch.jar au dossier d'applications Web CRX WEB-INF/lib. Par exemple, crx-quickstart/server/runtime/0/_crx/WEB-INF/lib puis configurez les LoginModules en conséquence.
Exemple :
com.day.crx { com.day.crx.security.authentication.CRXLoginModule sufficient; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.crx.security.principals.LDAPPrincipalProvider" host="MyHost1" ...; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.daycare.ldap.LDAP1" host="MyHost2" ...; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.daycare.ldap.LDAP2" host="MyHost3" ...; }
CRX 2.2 / 2.3
Remrque: dans la version actuelle de CRX 2.2, ce problème a été corrigé. L'attribut principal_provider.name a été ajouté. Il n'est donc plus nécessaire de disposer des noms de classe uniques configurés pour l'attribut principal_provider.class.
Voici un exemple qui fonctionne avec CRX 2.2 et des serveurs ldap multiples :
com.day.crx { com.day.crx.security.authentication.CRXLoginModule sufficient; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.crx.security.principals.LDAPPrincipalProvider" principal_provider.name="ldap1" host="MyHost1" ...; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.crx.security.principals.LDAPPrincipalProvider" principal_provider.name="ldap2" host="MyHost2" ...; com.day.crx.security.ldap.LDAPLoginModule sufficient principal_provider.class="com.day.crx.security.principals.LDAPPrincipalProvider" principal_provider.name="ldap3" host="MyHost3" ...; }
Application
CRX 2.0 / 2.1 / 2.2 / 2.3
Telechargement
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?