Pages enfant
  • LDAP (esup 4)

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.
Commentaire: Migrated to Confluence 5.3
Remarque
titlePrérequis

 L'annuaire LDAP doit être en ligne et joignable par le portail.

Le fichier de propriétés

Bloc de code
titlefilters/esup.properties
firstline88
linenumberstrue
################################################################################
## Configuration LDAP                                                         ##
################################################################################
environment.build.ldap.url=ldaps://ldap1.univ.fr:636 ldaps://ldap2.univ.fr:636
environment.build.ldap.baseDn=ou=people,dc=univ,dc=fr
environment.build.ldap.userName=
environment.build.ldap.password=
environment.build.ldap.pooled=false
environment.build.ldap.uidAttr=uid

Voici à quoi correspondent les différentes propriétés :

PropriétéDéfinitionValeurs
environment.build.ldap.url
URLs des LDAP (principal et répliquas)
Les différentes URL sont séparées par des espaces.
environment.build.ldap.baseDn
Nœud principal de la recherche.L'annuaire étant compatible supAnn, cette propriété devrait être valuée à "ou=people,dc=univ,dc=fr"
environment.build.ldap.userName
Nom de l'utilisateur se connectant au LDAP pour faire des requêtes.Vide si le LDAP ne requiert pas d'authentification
environment.build.ldap.password
Mot de passe de l'utilisateur se connectant au LDAP pour faire des requêtesVide si le LDAP ne requiert pas d'authentification
environment.build.ldap.pooled
Permet de gérer un pool de connexions.

Peut prendre les valeurs "true" ou "false" :

  • "false" : Le portail ne gère pas de pool de connexions au LDAP ;
  • "true" : Le portail gère un pool de connexions au LDAP

Pool de connexion : Cache de connexions (ouvertes), ce qui permet des gains de performances car les connexions ne sont pas à ouvrir à chaque besoin

environment.build.ldap.uidAttr

Nom de l'attribut utilisé pour identifier l'entrée (utilisateur) de l'annuaire. Lors de la requête pour la recherche d'un utilisateur, c'est ce champ qui sera utilisé pour le discriminer.

Dans le cadre de supAnn, la valeur uid est à paramétrer

Exemples d'attributs

Voici un extrait du fichier liant les attributs supAnn avec les attributs du portail :

Bloc de code
languagehtml/xml
titleuportal-war\src\main\resources\properties\contexts\personDirectoryContext.xml
firstline244
linenumberstrue
<property name="resultAttributeMapping">
    <map>
        <entry key="eduPersonPrimaryAffiliation">   <value>eduPersonPrimaryAffiliation</value></entry>                
		...
        <entry key="telephoneNumber">               <value>telephoneNumber</value></entry>
        <entry key="${ldap.uidAttr}">                              
            <set>
                <value>${ldap.uidAttr}</value>
                <value>username</value>
                <value>user.login.id</value>
            </set>
        </entry>
        <entry key="supannCodeINE">                 <value>supannCodeINE</value></entry>
		...
        <entry key="supannorganisme">               <value>supannorganisme</value></entry>
	</map>
</property>

Cela signifie que la "key" (supAnn) est liée à la "value" (uPortal).

D'autre part, des liens plus complexes peuvent être générés, comme, par exemple, la valeur "${ldap.uidAttr}" de l'annuaire qui est liée à trois valeurs différentes dans uPortal : "${ldap.uidAttr}", "username" et "user.login.id".

Remarque
titlePortlets et groupes PAGS

Les attributs utilisés par les portlets et les groupes PAGS du portail sont à déclarer dans cette configuration !

Avec des certificats (LDAPS)

Remarque
titlePrérequis

L'annuaire en ligne doit gérer les connexions sécurisées

En plus de la configuration dans le fichier de propriétés, il faut réaliser les actions suivantes :

  1. Récupérer le certificat à l'aide de la commande openssl :

    Bloc de code
    openssl s_client -connect <IP_LDAPS>:<PORT_LDAPS>


    Dans cette commande,
    <IP_LDAPS> et <PORT_LDAPS> sont idéalement les mêmes que ceux du fichier de propriétés.

    Le résultat de cette commande affiche une section ressemblant à cela :

    Bloc de code
    -----BEGIN CERTIFICATE-----
    MIIBeDCCASICBgE8bQdqBDANBgkqhkiG9w0BAQUFADBCMQswCQYDVQQGEwJVUzEM
    MAoGA1UEChMDQVNGMRIwEAYDVQQLEwlEaXJlY3RvcnkxETAPBgNVBAMTCEFwYWNo
    ZURTMB4XDTEzMDEyNDE0NDc0N1oXDTE0MDEyNDE0NDc0N1owRzELMAkGA1UEBhMC
    VVMxDDAKBgNVBAoTA0FTRjESMBAGA1UECxMJRGlyZWN0b3J5MRYwFAYDVQQDEw1G
    Ui1DWkMyMDM2UDBRMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIGEZUq5G4utdzeR
    8yEq2fef8pMDUL6YDiYrtG+jsjb3iX6B8tueDGBRyeb5XAEq3Ag3uhhoBNVi/F1/
    ba0GWMMCAwEAATANBgkqhkiG9w0BAQUFAANBAEv7sKnVbmbt2Jd1BDzZqSoTUnIJ
    KgFM3/k+HMcSgH9UP7wPYlXVUx2jino9nFpRoLkxxGw9t5Ul+lElbGlpYEs=
    -----END CERTIFICATE-----


    Il faut copier / coller cette section ("BEGIN / END CERTIFICATE" compris) dans un fichier que l'on nommera ldap.pem, par exemple.

  2. Importer ce certificat dans le magasin de la JVM :

    Bloc de code
    keytool -import -trustcacerts -alias ldap -file [full_path_to_the.pem] -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit


    Si elle s'affiche, répondre "oui" à la question de confiance.


Remarque
titleEt pour les répliquas...

La même manipulation est à effectuer pour chacun des répliquas de l'annuaire LDAP.

 

 

Info
titleRéférences

https://wiki.jasig.org/display/UPM40/LDAP
https://wiki.jasig.org/display/UPM40/LDAP+User+Attribute+Sources
https://www.cru.fr/documentation/supann/2009/classesattributs
 https://wiki.jasig.org/display/PDM15/LDAP+Attribute+Source
Exemple de fichier de configuration