Configuration de l’authentification LDAP par rapport à plusieurs annuaires LDAP

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 ?

Adobe MAX 2024

Adobe MAX
La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX

La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX 2024

Adobe MAX
La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne

Adobe MAX

La conférence sur la créativité

Du 14 au 16 octobre à Miami Beach et en ligne