Pages enfant
  • Grouper - Store SmartLdapGroupStore (esup 4)

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=273416195) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

Cette page est destinée aux intégrateurs.

Références

Documentation officielle pour la configuration du SmartLdapGroupStore dans uPortal : https://wiki.jasig.org/display/UPM40/SmartLdapGroupStore

Contexte

Le gestionnaire de grouper Grouper fourni par uPortal est jugé non pertinent (performance, tolérance aux pannes). La solution proposée est d'utiliser le SmartLdapGroupStore adapté à la façon dont Grouper exporte des groupes dans le LDAP.

Données utilisées

Dans les paragraphes suivants, la configuration est présentée pour un annuaire LDAP configuré comme suit :

  • dc=example,dc=org
    • ou=personnes
      • uid=user1
      • uid=user2
      • ....
    • ou=groups
      • cn=groupe1
      • cn=groupe2
      • ...

Les groupes sont des groupes exportés par grouper.Le cn est donc de la forme : folder1:folder2:nom. Par exemple : admin:appli:appli1

Les groupes ont pour objectClass eduMember.

//FIXME --> Exemple ldif

Au sein d'une entrée de personnes, on connait les groupes dont il est membre en interrogeant l'attribut isMemberOf.

//FIXME --> Exemple ldifImport des « channel-type » dans uPortal v4.x

Activation du SmartLdapGroupStore

 

  • Activer le SmartLdapGroupStore dans uportal-war/src/main/resources/properties/groups/compositeGroupServices.xml
<service>
    <name>smartldap</name>
    <service_factory>org.jasig.portal.groups.ReferenceIndividualGroupServiceFactory</service_factory>
    <entity_store_factory>org.jasig.portal.groups.smartldap.SmartLdapEntityStore$Factory</entity_store_factory>
    <group_store_factory>org.jasig.portal.groups.smartldap.SmartLdapGroupStore$Factory</group_store_factory>
	<entity_searcher_factory>org.jasig.portal.groups.smartldap.SmartLdapEntitySearcher$Factory</entity_searcher_factory>
    <internally_managed>false</internally_managed>
    <caching_enabled>true</caching_enabled>
  </service>
  • Configurer le SmartLdapGroupStore dans uportal-war/src/main/resources/properties/groups/SmartLdapGroupStoreConfig.xml
    <!--
     | This bean is the ContextSource instance that will be used to connect to LDAP.
     +-->
    <bean id="ldapContext" class="org.springframework.ldap.core.support.LdapContextSource">
        <property name="url" value="ldap://ldapserveur:389"/>
        <property name="userDn" value="uid=root,dc=example,dc=org"/>
        <property name="password" value="XXX"/>
    </bean>

    <!--
     | BaseDn that will be passed to the search (not to the context).
     |
     | WARNING:  If you get an error like this...
     |   ...PartialResultException: [LDAP: error code 10...
     | it probably means your baseDn isn't correct!
     +-->
    <bean id="baseDn" class="java.lang.String">
        <constructor-arg><value>ou=groups,dc=example,dc=org</value></constructor-arg>
    </bean>

Le childGroupKeyRegex permet d'extraire la clé qui identifie le groupe.
    <!--
    ESUP Parameter.
    This parameter is used to extract the id path of the groups
    form their dn. The id path is expected to be catched from the first group
    of the regex.
    -->
    <bean id="childGroupKeyRegex" class="java.lang.String">
        <constructor-arg><value>cn=(.*),ou=groups,dc=aquitaine,dc=fr</value></constructor-arg>
    </bean>

La requête LDAP qui permet d'extraire tous les groupes à prendre en compte dans la branche baseDn.
    <!--
     | LDAP query string that will be passed to the search.
     +-->
    <bean id="filter" class="java.lang.String">
        <constructor-arg><value>(objectClass=groupOfNames)</value></constructor-arg>
    </bean>

Le memberOfAttributeName identifie les groupes dont la personne est membre. Cet attribut est utilisé sur une entrée LDAP de la branche personne.
    <!--
     | This bean identifies the name of the Person Attribute that
     | lists the SmartLdap groups each person is a member of.
     +-->
    <bean id="memberOfAttributeName" class="java.lang.String">
        <constructor-arg><value>isMemberOf</value></constructor-arg>
    </bean>

Le keyAttributeName identifie la clé du groupe. Cet attribut est utilisé sur une entrée LDAP de la branche groupe.
Le groupNameAttributeName identifie le nom du groupe. Cet attribut est utilisé sur une entrée LDAP de la branche groupe.
Le membershipAttributeName identifie les membre du groupe. Cet attribut est utilisé sur une entrée LDAP de la branche groupe.
    <!--
     | This bean identifies the org.springframework.ldap.core.AttributesMapper
     | implementation used in reading the groups records from LDAP.
     +-->
    <bean id="attributesMapper" class="org.jasig.portal.groups.smartldap.SimpleAttributesMapper">
        <!--
         | Name of the group attribute that tells you its key.
         +-->
        <property name="keyAttributeName">
            <value>cn</value>
        </property>
        <!--
         | Name of the group attribute that tells you its name.
         +-->
        <property name="groupNameAttributeName">
            <value>cn</value>
        </property>
        <!--
         | Name of the group attribute that lists its members.
         +-->
        <property name="membershipAttributeName">
            <value>member</value>
        </property>
    </bean>



  • Aucune étiquette