Partage
  • Partager sur Facebook
  • Partager sur Twitter

LDAP & NextCloud

    26 janvier 2021 à 15:49:45

    Bonjour à tous,

    J'essaye depuis déjà pas mal de temps de lier NextCloud à un serveur OpenLDAP. Pour l'instant j'ai réussi à faire communiquer les deux en faisant des essais sur des VM Debian et sur Raspberry Pi 3. Mais la configuration du module NextCloud ne va jamais jusqu'au bout car il demande des types "personnes" et des types "groupes particuliers. Toutes les ressources trouvées sont de la même veine que la documentation officielle du module de NextCloud (lien). Càd qu'il est indiqué comment paramétrer NextCloud, mais jamais comment configurer le serveur LDAP pour être compatible.

    Pour parler contexte, le but de cette démarche serait d'avoir un OpenLDAP qui permettrait à mon club multisport de centraliser les informations d'adhésions, et de permettre de donner aux adhérents de facto un accès à notre WordPress (pour l'inscription aux événements), à notre NextCloud (pour l'échange de photos) et à notre liste de diffusion.

    La première question que je voudrais vous poser est : est-ce que l'un d'entre-vous aurait déjà fait cette démarche de lier NextCloud à OpenLDAP et saurait m'aiguiller pour créer un fichier de configuration initiale pour OpenLDAP (avec des utilisateurs et groupes dummies) qui permettrait au moins de faire des essais du module NextCloud ?

    La deuxième question concerne le gestionnaire graphique. J'en ai essayé plusieurs comme OpenLDAP, phpLDAPadmin, FusionDirectory. Mais pour l'instant aucun ne m'a donné satisfaction quand au fait que je ne pouvais pas choisir facilement le type de groupe utilisé. FusionDirectory possède à priori un plugin pour NextCloud (lien) mais en est pour l'instant en développement et la doc qui pop en premier sur Google ne le précise pas (lien). Du coup, est-ce que quelqu'un aurait un gestionnaire libre sous Linux/Debian à conseiller ? Si oui, avec quelle documentation qui permettrait de savoir comment faire la configuration pour NextCloud ou WordPress ?

    Si j'arrives à avoir du temps je testerai OpenDJ mais dans ce cas, il me faudra faire en plus un portail de gestion web pour communiquer avec son API.

    PS : je ne viens pas du monde de l'informatique mais de celui du design mécanique donc désolé si j'ai laissé passer des énormités...

    En vous remerciant par avance.

    • Partager sur Facebook
    • Partager sur Twitter
      2 février 2021 à 12:29:25

      Salut,

      J'ai bricolé un truc pendant des tests sur mon serveur perso il y a quelques temps. Je te décris vite fait mon contexte pour que tu ne sois pas trop surpris des différences :

      • J'ai un serveur privé virtuel avec pas mal de ressources et j'utilise des containers pour installer les applications.
      • Je déploie mes applications avec un mélange de scripts Bash et de configurations Kubernetes. C'est chiant à mettre en place, mais quand je redéploie sur un autre serveur, je n'ai quasiment rien à faire pour retrouver une configuration identique.
      • J'utilise le conteneur OpenLDAP `osixia/openldap` comme serveur LDAP.
      • J'utilise le conteneur phpLDAPadmin `osixia/phpldapadmin` comme interface d'administration LDAP.
      • J'utilise le conteneur Nextcloud `nextcloud:20.0.2-apache` comme serveur cloud.
      • J'utilise le conteneur MariaDB `mariadb:10.5.8` comme base de données pour Nextcloud.

      Il y a quelques éléments de configuration qui sont déjà intégrés dans ces containers.

      Et niveau utilisation:

      • Je n'ai pas besoin de gérer des utilisateurs tous les quatre matins, mon cloud est juste pour un usage perso voir familial, pas plus.
      • Avant j'utilisais un script ou phpLDAPadmin pour créer les utilisateurs, mais je trouvais ça chiant. Je suis récemment tombé sur l'app "Write support for LDAP" et elle semble faire le job.
      • J'ai un compte "administrateur du cloud" qui est géré uniquement par Nextcloud et qui me permet de faire les configurations éventuelles sur l'IHM. Tous les autres utilisateurs sont dans l'annuaire LDAP.


      Pour la mise en place:

      Pour le serveur OpenLDAP, le container crée des utilisateurs "de service" (un administrateur et un avec seulement un droit de lecture) qui permettent d'accéder à l'annuaire LDAP. Ces utilisateurs sont automatiquement créés par le conteneur à partir de variables que l'on renseigne dans la conf (celle du conteneur). Vu que tu n'utilises pas de conteneurs, je ne peux pas t'aider plus sur ce point, mais il existe plein de ressource sur le net comme [ici pour créer un administrateur](https://www.thegeekstuff.com/2015/02/openldap-add-users-groups/).

      Une fois le serveur LDAP en place, tu peux mettre en place phpLDAPadmin. Là encore, j'ai utilisé des conteneurs, donc ma procédure est différente. Mais tu dois certainement avoir à définir quelques informations, en particulier l'adresse du serveur LDAP. Il doit il y avoir des procédures disponibles en ligne pour expliquer ça. L'essentiel à ce stade est de pouvoir vérifier que tu arrives bien à te connecter avec un utilisateur ayant les droits d'écriture (le login est sous la forme "cn=admin,dc=example,dc=com").

      Au niveau de la conf Nextcloud, le plus simple est de passer par l'interface graphique (sur la page `<adresse du cloud>/settings/admin/ldap`) (tu peux aussi utiliser l'interface en lignes de commande). Tu devras :

      • Y renseigner l'adresse/port du serveur LDAP
      • Y renseigner le login et mot de passe d'un compte ayant les accès en écriture au serveur LDAP (sous la forme "cn=admin,dc=example,dc=com")
      • Le DN de base ("dc=example,dc=com")
      • A ce point là, tu devrais pouvoir presser le bouton "tester le DN de base", si ça passe tu auras une popup en haut à droite de ton écran affichant "<n> entrées disponibles dans le DN de base spécifié".
      • Clique sur "Continuer", ça te fera aller à l'onglet de configuration des utilisateurs.
      • Dans l'onglet "utilisateurs", tu as une liste déroulante "Seulement ces classes d'objets", sélectionne "inetOrgPerson". Si tu n'as pas d'utilisateur dans ton annuaire, il est possible que tu n'aies pas d'options de disponible dans la liste déroulante, auquel cas tu peux "modifier la requête LDAP" pour qu'elle corresponde à tes utilisateurs futurs, comme par exemple `(|(objectclass=inetOrgPerson))` (les entrées créées par le plugin NextCloud sont de classe inetOrgPerson).
      • Si tu as des utilisateurs dans ton annuaire, tu dois pouvoir maintenant en voir le nombre en cliquant sur "vérifier les paramètres et compter les utilisateurs". Si c'est OK, "Continuer".
      • Onglet "Attributs de login": Configure comment les utilisateurs pourront se connecter (quels attributs utiliser: login, adresse email, autre chose,...).
      • Tu peux tester qu'un utilisateur existant est bien trouvé en donnant son login puis cliquant sur "tester les paramètres".

      Plus bas sur la page `/settings/admin/ldap`, tu as aussi la conf du plugin ldap_write_support, dont le template de fichier ldif utilisé pour créer les nouveaux utilisateurs. Perso j'ai laissé toutes les confs par défaut.

      En espérant que ça puisse t'aider...

      @+!

      • Partager sur Facebook
      • Partager sur Twitter
      (\ _ /) (='.'=) Voici Lapinou. Aidez le à conquérir le monde (")-(") en le reproduisant.

      LDAP & NextCloud

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown