TaskFreak Configuration LDAP

De EjnTricks

Un développeur a mis en place des modifications du code source afin d'effectuer l'authentification sur un serveur LDAP. Un thread sur le forum officiel est disponible à l'adresse: http://forum.taskfreak.com/index.php?topic=1441.0

Celui ci n'est pas mis à disposition sous forme de zip, ou tar ou autre chose, et il faut télécharger les sources depuis le serveur SVN. Un fichier README.txt est disponible décrivant la marche à suivre, mais celui ci étant validé pour les versions 0.6.1 et 0.6.2, l'installation sera réalisée manuellement pour une version 0.6.4. Le fichier est également mis à disposition sur ce Wiki ici

Suite à cette installation, les informations de connexion seront validées sur l'annuaire, rendant le compte admin par défaut non disponible. Il faut donc s'assurer qu'il y a un compte déclaré, qui le soit également dans l'annuaire, et qui possède les droits d'administration. Sinon, les actions d'administration ne seront plus disponibles.

Hand-icon.png Votre avis

Current user rating: 74/100 (3 votes)

 You need to enable JavaScript to vote


Untar-icon.png Composition

Le contenu complet à télécharger est:

+--- config.php
+--- LICENCE.txt
+--- README.txt
+--- CHANGELOG.txt
+--- patches
|   +--- apk_ldap-1.0.php
|   +--- user_form-1.1.patch
|   +--- config.php-0.6.2.patch
|   +--- tzn_user-1.4.patch
+--- data
|   +--- db.sql
|   +--- icon.gif
+--- modify
|   +--- include
|   |   +--- config.php
|   |   +--- html
|   |   |   +--- user_form.php
|   |   +--- classes
|   |   |   +--- apk_ldap.php
|   |   |   +--- tzn_user.php

Le répertoire patches contient les différentiels à appliqué à l'aide de la commande shell patch et ne sont pas pris en compte dans le cadre de cette installation. Dans le répertoire data, le fichier db.sql indique qu'aucune action sur la base de données n'est nécessaire. Par conséquent, seul le contenu du répertoire modify sera utilisé. Celui-ci reprend l'arborescence originale de l'application ainsi que les fichiers à modifier.

La mise en place de l'annuaire est en relation avec l'installation faite de OpenLDAP sur un serveur Ubuntu.

Mise en place

Fichier config.php

La première modification à apporter s'effectue sur le fichier include/config.php afin de définir:

  • L'utilisation d'un nouveau mode d'authentification
  • Les paramètres de l'annuaire LDAP.

Les paramètres de l'annuaire mis en place sont:

Paramètre Valeur
APK_LDAP_SERVER localhost

TaskFreak étant installé sur la même machine que l'annuaire.

APK_LDAP_BASEDN ou=people,dc=ejnserver,dc=fr

Tous les utilisateurs sont déclarés sous cet ou.

APK_LDAP_BINDDN cn=admin,dc=ejnserver,dc=fr

Comptes administrateur de l'annuaire

APK_LDAP_BINDPW ADMIN_PASSWORD

Le mot de passe du compte défini dans ldap.bindDn.

APK_LDAP_FILTER (uid=%s)

Filtre appliqué afin d'identifier les utilisateurs sous la racine définie dans APK_LDAP_BASEDN.

D'autre paramètres sont disponibles pour le comportement de la création automatique des comptes. Mais ceux ci ne sont pas utilisés.

Enfin, des paramètres permettent de définir le mapping des données des utilisateurs sous TaskFreak et la définition LDAP, dans la variable globale confLdapAttributesMapping. Le mapping par défaut mis en place correspond à l'annuaire installé:

Propriété TaskFreak Propriété LDAP
APK_LDAP_SERVER localhost

TaskFreak étant installé sur la même machine que l'annuaire.

firstName givenName
lastName sn
email mail
username uid

Fichier tzn_user.php

Les modifications apportées dans ce fichier ajoutent le mode d'authentification sur un annuaire LDAP.

Fichier apk_ldap.php

Ce fichier est tout simplement ajouté car il n'existe pas. Des fonctions d'interrogations de l'annuaire y sont exposées.

Fichier user_form.php

La modification de ce fichier permet de changer l'apparence du formulaire de création d'un utilisateur.


Update icon.png Evolution

Sur le paramètre de recherche des utilisateurs, le filtre d'appartenance au groupe taskfreakUsers. L'appartenance à ce groupe est modélisé à l'aide de l'overly memberOf installé sur l'annuaire. Pour cela, l'élément de configuration APK_LDAP_FILTER dans le fichier config.php est modifié avec la valeur (&(uid=%s)(memberof=cn=taskfreakUsers,ou=groups,dc=ejnserver,dc=fr))

// define("APK_LDAP_FILTER", "(uid=%s)" ) ;
define("APK_LDAP_FILTER", "(&(uid=%s)(memberof=cn=taskfreakUsers,ou=groups,dc=ejnserver,dc=fr))" ) ;