3- Configuration de JBoss Portal

La configuration que nous allons mettre en place va permettre de créer des utilisateurs dans l'annuaire ldap, et surtout de s'authentifier sur le portail vi ldap.

Pour cela nous suivons la procédure du chapitre 19 : http://docs.jboss.com/jbportal/v2.6.3/referenceGuide/html/ldap.html

  • Dans le fichier jboss-portal.sar/META-INF/jboss-service.xml, modifier "identity-config.xml" en mettant "ldap_identity-config.xml".
  • Modifier le fichier ldap_identity-config.xml afin de paramétré l'accès à l'annuaire, en donnant le nom du serveur (localhost), le port (389), le dn de l'utilisateur admin (=rootdn du fichier slapd.conf), son mot de passe. Il est possible d'ajouter d'autres options, et/ou de faire un lien avec une datasource externe avec JNDI (très util si plusieurs applications accèdent au même annuaire LDAP).
<identity-configuration>
    <datasources>
        <datasource>
            <name>LDAP</name>
            <config>
                <option>
                    <name>host</name>
                    <value>localhost</value>
                </option>
                <option>
                    <name>port</name>
                    <value>389</value>
                </option>
                <option>
                    <name>adminDN</name>
                    <value>cn=Manager,dc=lapindream,dc=com</value>
                </option>
                <option>
                    <name>adminPassword</name>
                    <value>secret</value>
                </option>
                <!--<option>
                <name>protocol</name>
                <value>ssl</value>
                </option>-->
            </config>
        </datasource>
    </datasources>
  • Puis dans le même fichier nous configurons les modules d'identification (ici nous utilisons des implémentations simples qui permettent de faire des recherches et de créer des utilsateurs et des roles :
<modules>
    <module>
        <!--type used to correctly map in IdentityContext registry-->
        <type>User</type>
        <implementation>LDAP</implementation>
        <class>
        org.jboss.portal.identity.ldap.LDAPUserModuleImpl
        </class>
        <config/>
    </module>
    <module>
        <type>Role</type>
        <implementation>LDAP</implementation>
        <class>
        org.jboss.portal.identity.ldap.LDAPRoleModuleImpl
        </class>
        <config/>
    </module>
    <module>
        <type>Membership</type>
        <implementation>LDAP</implementation>
        <config/>
    </module>
    <module>
        <type>UserProfile</type>
        <implementation>DELEGATING</implementation>
        <config>
        <option>
        <name>ldapModuleJNDIName</name>
        <value>java:/portal/LDAPUserProfileModule</value>
        </option>
        </config>
    </module>
    <module>
        <type>DBDelegateUserProfile</type>
        <implementation>DB</implementation>
        <config>
        <option>
        <name>randomSynchronizePassword</name>
        <value>true</value>
        </option>
        </config>
    </module>
    <module>
        <type>LDAPDelegateUserProfile</type>
        <implementation>LDAP</implementation>
        <config/>
    </module>
</modules>



Enfin, toujours dans le même fichier, on spécifie les informatins permettant de créer et rechercher les utilisateurs, roles... :

<options>
    <option-group>
        <group-name>common</group-name>
        <option>
            <name>userCtxDN</name>
            <value>ou=Personnes,dc=lapindream,dc=com</value>
        </option>
        <option>
            <name>userSearchFilter</name>
            <value><![CDATA[(&((uid={0})(objectClass=person)))]]></value>
        </option>
        <option>
            <name>roleCtxDN</name>
            <value>ou=Roles,dc=lapindream,dc=com</value>
        </option>
        <option>
            <name>roleSearchFilter</name>
            <value><![CDATA[(&((cn={0})(objectClass=groupOfNames)))]]></value>
        </option>
    </option-group>

    <option-group>
        <group-name>userCreateAttibutes</group-name>
        <option>
            <name>objectClass</name>
            <!--This objectclasses should work with Red Hat Directory-->
            <value>top</value>
            <value>person</value>
            <value>inetOrgPerson</value>
        </option>
        <!--Schema requires those to have initial value-->
        <option>
            <name>cn</name>
            <value>none</value>
        </option>
        <option>
            <name>sn</name>
            <value>none</value>
        </option>
    </option-group>
    <option-group>
    <group-name>roleCreateAttibutes</group-name>
        <!--Schema requires those to have initial value-->
        <option>
            <name>cn</name>
            <value>none</value>
        </option>
        <!--Some directory servers require this attribute to be valid DN-->
        <!--For safety reasons point to the admin user here-->
        <option>
            <name>member</name>
            <value>cn=Manager, dc=lapindream,dc=com</value>
        </option>
    </option-group>
</options>
</identity-configuration>



Il ne reste plus qu'à tester en se logguant au portail avec un des comptes créer.

Puis on peut créer un nouveau compte et regarder dans LDAP Browser le résultat !

Précédent : Configuration JBoss Portal : Authentification sur le portail avec LDAP (1)