Importer des utilisateurs dans ownCloud via LDAP

I. Présentation

L’application ownCloud intègre un module LDAP qui permet d’aller chercher des données dans un annuaire LDAP afin d’y importer des données, notamment des comptes utilisateurs. Dans ce tutoriel, nous allons utiliser un annuaire Active Directory (Microsoft) afin de s’y connecter, de lire les données et de les importer au sein d’ownCloud.

La communication entre les deux parties s’effectue par l’intermédiaire du protocole LDAP, qui utilise le port 389.

II. Configuration de l’Active Directory

Cette première partie consiste à créer un utilisateur dit « connecteur » qui est nécessaire pour la communication LDAP entre le serveur AD et le client ownCloud. C’est cet utilisateur qui va s’authentifier sur l’Active Directory pour récupérer les informations demandées via la requête LDAP.

Pour cela, nous allons créer une nouvelle unité d’organisation (OU) qui sera appelée « connecteurldap ». Celle-ci sera consacrée aux différents « connecteurs LDAP », c'est-à-dire à ownCloud et éventuellement à d’autres applications qui peuvent être mises en place à l’avenir (exemple : GLPI).

Faites clic droit sur la racine de votre domaine puis « Nouveau » et « Unité d’Organisation », appelez-la « connecteurldap ».

Dans cette OU, nous allons créer l’utilisateur qui permettra à l’application ownCloud de se connecter à l’annuaire. Faites donc clic droit sur l’OU « connecteurldap » puis créer un nouvel utilisateur que vous nommez « owncloudldap ».

De plus, dans cet même OU créez le groupe « owncloudgroupe » qui aura pour membres tous les utilisateurs qui seront autorisé à utiliser la plateforme ownCloud. Vous devez obtenir ceci :

Connecteur LDAP pour ownCloud

III. Installation du module LDAP – PHP

Afin de pouvoir utiliser LDAP avec PHP, vous devez installer le paquet « php-ldap » grâce à la commande suivante :

apt-get install php-ldap

Si le paquet "php-ldap" est introuvable, installez celui-ci : php5-ldap

IV. Activation du module LDAP

Au niveau de la configuration d’Apache, le module LDAP doit être activé pour permettre l’utilisation des fonctions LDAP en PHP. On utilise donc la commande « a2enmod » qui permet d’activer un module, puis on redémarre le serveur Apache pour activer la nouvelle configuration.

a2enmod ldap
service apache2 restart

owncloudldap2

V. Activer l’application LDAP dans ownCloud

L’application LDAP doit être activée au sein d’ownCloud puisque par défaut ce n’est pas le cas. Pour cela, une fois connecté à l’interface, cliquez sur l’engrenage en bas à gauche pour accéder à la configuration de la plateforme.

Ensuite, cliquez sur « Applications » et dans la liste sur « LDAP user and group backend ». Dans la partie de droite apparaît le descriptif de l’application, cliquez sur le bouton « Activer ».

owncloudldap3

VI. Configuration de l’application LDAP

Maintenant, nous pouvons nous intéresser à la configuration de l’application LDAP que nous venons d’activer afin de la configurer de manière à ce qu’il y ait une lecture des informations au sein de notre annuaire Active Directory.

Pour effectuer la configuration, allez dans « Administration » puis nous allons devoir configurer la partie « LDAP Basic ».

A. Connexion avec le serveur Active Directory :

Les 4 premiers paramètres concernent la connexion au serveur, « Host » correspond au serveur auquel on doit se connecter, « DN de Base » à l’endroit où l’on se place dans l’annuaire pour rechercher l’utilisateur utilisé pour la connexion, « DN Utilisateur » correspond au nom de l’utilisateur qui doit être utilisé pour établir la connexion. Pour finir, le champ « Mot de passe » permet d’indiquer le mot de passe de cet utilisateur.

Dans le cadre de ce tutoriel, la configuration sera donc la suivante :

Host : 192.168.1.110
DN de Base : ou=connecteurldap,dc=neoflow,dc=fr
DN Utilisateur : owncloudldap

B. Filtre sur les données récupérées du LDAP :

Les filtres sont très important, ils vont nous permettent de récupérer seulement les données nécessaires. Soit on récupère tous les objets de l’Active Directory (Utilisateurs, Ordinateurs, Groupes, …) :

Filtre d'identifiants utilisateur : sAMAccountName=%uid
Filtre d'utilisateurs : objectClass=person
Filtre de groupes : objectClass=group

Soit, on récupère seulement les utilisateurs qui font partie du groupe « owncloudgroupe », qui sont donc autorisé via l’AD. Ce qui est plus intéressant et correspond mieux à ce qu’on souhaite, en donnant tout son intérêt au groupe « owncloudgroupe ».

Filtre d'identifiants utilisateur :
(&(sAMAccountName=%uid)(objectClass=person)(memberOf=cn=owncloudgroupe,ou=connecteurldap,dc=neoflow,dc=fr))

Filtre d'utilisateurs :
(&(objectClass=person)(memberOf=cn=owncloudgroupe,ou=connecteurldap,dc=neoflow,dc=fr))

Filtre de groupes : objectClass=group

Voici un résumé de la configuration :

owncloudldap4

Une fois la configuration effectuée, cliquez sur « Save » pour sauvegarder et cliquez sur l’onglet « Advanced » pour passer à la configuration avancée de l’application LDAP.

- Port : 389 - Permet de modifier le port utilisé par le protocole LDAP pour communiquer avec le serveur d’annuaire.

- Base User Tree : dc=neoflow,dc=fr – DN de base pour les utilisateurs.

- Base Group Tree : dc=neoflow,dc=fr – DN de base pour les groupes.

- Association groupe-membre : member(AD) – Attribut à utiliser pour associer les membres à un groupe.

- Utiliser TLS (Décocher) – Utiliser ou non le protocole TLS pour sécuriser la communication avec le serveur LDAP.

- Serveur LDAP insensible à la casse (Windows) (Cocher) – Ne pas se fier à la casse (insensible aux majuscules et minuscules).

- Désactiver la validation du certificat SSL (Décocher).

- User Display Name Field : sAMAccountName – Champ à afficher pour les utilisateurs, le nom du compte.

- Group Display Name Field : sAMAccountName – Champ à afficher pour les groupes, le nom du compte.

- Quota Field : Champ dans l’annuaire à lire pour détecter un éventuel quota appliqué à l’utilisateur.

- Quota Default : Appliquer un quota par défaut si le champ de l’annuaire ne retourne pas de valeur pour certains utilisateurs.

- Email Field : Champ dans l’annuaire à lire pour récupérer les informations concernant l’adresse email de l’utilisateur.

- Cache Time-To-Live : 600 – Durée de vie du cache.

owncloudldap5

Pour finir sauvegardez les modifications pour qu’ownCloud effectue la liaison avec l’annuaire LDAP. Une fois que c’est fait, allez dans « Utilisateurs » dans le menu en bas à gauche pour accéder à la liste des utilisateurs. Il devrait y en avoir des nouveaux correspondants à des utilisateurs de votre annuaire Active Directory.

Utilisateur LDAP dans ownCloud

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5471.Voir tous les posts

11 thoughts on “Importer des utilisateurs dans ownCloud via LDAP

  • Bonjour,

    Bien que j’ai la même structure et la même logique que vous, crée dans l’optique de gérer mes utilisateurs « cloud » depuis mon AD uniquement, je n’arrive pas à obtenir les membres du groupe owncloudgroupe mais seul owncloudldap s’affiche.
    La version 5.0.10 que j’utilise possède quelques champs supplémentaires mais je pense avoir respecté vos consignes.
    L’AD est sur un Windows SBS2003.

    Auriez-vous une piste ?
    Merci
    ICO

    Répondre
  • Bonjour,

    Quels sont les champs supplémentaires ? Peut être que le problème vient de là.

    Bon courage !
    Florian

    Répondre
  • Bonjour,
    Très bon tuto que nous avons suivis à la lettre pour installer Owncloud 6 sur une débian wheezy.
    nous l’avons configuré pour importer les utilisateurs de notre openldap mais nous rencontrons un probleme:

    les utilisateurs peuvent se connecter sans problème les dossiers sont bien créés.
    mais les utilisateurs ne sont pas importé dans les utilisateurs de owncloud

    mais utilisateurs sont du genre cn=name,dc=entreprise,dc=fr

    merci par avance de votre aide

    Répondre
  • J’ai suivis la procédure, et cela m’a bien importer mon utilisateur test, mais j’ai un champ « nom de la connexion » qui est renseigner par une info du style « c458d489-c5ec4e-4ce4c8-4ce49 » le « nom affiché » qui a bien repris mon nom d’user, et le mot de passe, mais impossible de me connecter à owncloud via cet user, de plus, cela m’a importer l’intégralité des groupes de mon AD chose que je ne voulais pas.

    Répondre
  • J’ai specifié le champ quota pour chaque utilisateur mais owncloud ne me le reconnais pas, aidez moi svp

    Répondre
  • Bonjour Florian et merci pour ce tuto. Un des rares disponibles sur ce sujet.

    La configuration s’est bien passée sous Owncloud 8, par contre, je ne récupère que les utilisateurs membres du groupe « owncloudgroupe » ET membres de l’ OU « connecteurldap ».

    Est-il possible de récupérer les membres du groupe qui soit classés de l’OU « Users » ?

    Bonne journée

    Répondre
    • Bonjour David,

      Ceci est possible, il suffit de s’amuser avec les filtres. Pour ton cas, il faut modifier le filtre utilisateur pour lui indiquer de regarder uniquement dans l’unité d’organisation « Users ».

      Je n’ai pas testé, mais le filtre utilisateur devrait ressembler à ceci (en changeant le domaine) :

      (&(objectClass=person)(ou=Users,dc=domaine,dc=fr))

      Si besoin de plus d’aide, sache que l’on a notre forum qui est fait pour ça =)
      Florian

      Répondre
  • Bonjour,
    merci pour les différents tutos très bien fait.
    cependant je recherche comment permettre à des amis/familles de s’inscrirent tout seul.
    j’ai cru comprendre que l’app external user était la pour ca mais je n’arrive pas à la faire fonctionner.
    dès que je rajoute les lignes de config dans le fichier config.php owncloud devient inaccessible.
    j’imagine que si vous n’avez pas fait de tuto la dessus c’est que ce doit être simple ou déjà pas mal exister. mais ne trouvant pas de solution je me permet de vous poser la question ici.

    Connaissez vous un bon tuto pour cela ?

    Répondre
  • Bonjour,
    J’ai suivis ton tuto et merci mais chez moi la connexion est ok mais il user ne s’affiche pas dans utilisateurs je suis en version 10 merci

    Répondre
    • Bonjour,
      L’import des utilisateurs n’est plus automatique depuis la version 10, il faut qu’il se connecte pour la synchro s’effectue.

      https://doc.owncloud.com/server/admin_manual/configuration/user/user_auth_ldap.html
      « Synchronisation des utilisateurs
      Alors que les utilisateurs qui correspondent aux filtres de connexion et d’utilisateur peuvent se connecter, seuls les utilisateurs synchronisés seront trouvés dans la boîte de dialogue de partage. Chaque fois que les utilisateurs se connectent, leur nom d’affichage, leur adresse e-mail, leur quota, leur avatar et leurs attributs de recherche seront synchronisés avec ownCloud. Si vous souhaitez maintenir les métadonnées à jour, vous pouvez configurer une tâche cron à l’aide de la commande occ user: sync. Les versions d’ownCloud antérieures à 10.0 importaient tous les utilisateurs lors du chargement de la page des utilisateurs, mais ce n’est plus le cas. »
      Pour ma part, j’ai lancer cette commande pour réaliser la synchro des utlisateurs dans \var\www\owncloud
      sudo -u www-data php occ user:sync « OCA\User_LDAP\User_Proxy » -m disable -r

      Répondre
  • Bonjour,
    J’ai une petites question bête, es-que pour pouvoir utiliser LDAP d’Active Directory sous OWNCLOUD, il faut que le server linux sois rejoint au domaine Windows Server 2016 ou pas besoin ?

    PS : Es-que la procédure d’Openclassrooms et obligatoire pour utiliser LDAP d’OWNCLOUD sous Linux biensur .
    ( Exemple )
    https://openclassrooms.com/courses/integrez-un-serveur-ou-client-linux-dans-un-domaine-windows
    Je vous remercie .

    Cordialement .

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.