Installer un serveur Jabber (OpenFire) sur Linux (Debian), connecté à un Active Directory (Windows, donc)

(pour les lecteurs planet-libre, oui, openfire en java ça-pue-c-est-pas-libre ™ et active-directory-c-est-le-mal-incarné ™, néanmoins openfire est à des années lumières d’ejabberd, et un paysage avec un AD pour le parc Windows et néanmoins certains serveurs d’infrastructure et applicatifs sous Linux, ça existe et si vous êtes pas content, banissez-moi, merci)

Présentation du contexte

Le but de cet article de montrer à des noob’ de l’Active Directory (comme moi) comment connecter un outil sous Linux à un AD, sans trop connaître la structure d’un AD. Ca peut s’avérer pratique dans bien des cas d’outils très performants sous Linux mais pour lesquels on a besoin de “la base des utilisateurs Windows pour éviter la double déclaration des comptes et les mots de passes différents pour chaque appli”. Vous voyez le principe ?
L’autre but est de montrer un outil qui permet de s’y retrouver facilement dans un AD.

J’ai choisi OpenFire car mes dernières expériences avec ejabberd ne m’ont pas convaincues. OpenFire (anciennement WildFire) est super propre d’interface et est distribué par une entreprise, “Jive Software
Connectable sans peine à des LDAP, dont AD (et OpenLDAP, Novell etc), c’est un bon cas d’école.
Pour les psychos, ça reste une application publiée sous licence GPL tout de même.

Sur le site de l’éditeur, ils proposent le serveur OpenFire packagé pour Redhat, Debian, Windows, Mac etc.
Je passe sur l’installation, (sous Debian dpkg -i openfire*deb)
Ensuite tout se passe par le web, à l’adresse http://votre.serveur:9090/

La conf AD, LE outil merveilleux pour ne pas s’y perdre

Quelques remarques :

  • Les étapes de configuration sont relativement simples, je zoome uniquement sur la partie AD
  • J’ai opté pour une base de données embarquées, “volatile”
  • A noter d’ailleurs que pour sauvegarder la conf de votre serveur OpenFire, vous n’aurez besoin – si je ne dis pas d’ânerie – que de /etc/openfire/ et de /var/lib/openfire/embedded-db/openfire.script qui est le script de création de base à la volée (au lancement du service). Attention, il contient des mots de passe sensibles en clair, comme l’admin AD…. de base, le package Debian est propre et prive les accès à openfire:openfire, chmod à base de 770/660

Bon, une fois l’installation un peu déroulée, arrivent les premières étapes de configuration de l’AD. Et là, je ne saurais trop vous recommander l’excellent outil de l’excellent sysinternals.com Microsoft nommé “Active Directory explorer“, qui, pour chaque noeud que vous visitez dans l’AD, vous donne sa syntaxe complète et pour chaque élement, les noms des attributs, pas leur libellé. Du bonheur en barre. Exemple, je localise mes utilisateurs :
openfire1

J’injecte ça dans la conf OpenFire :
openfire2

Ensuite, sur l’écran suivant qui consiste à indiquer quel sous-ensemble des utilisateurs pourra s’authentifier, j’utilise encore l’”AD Explorer”, je repère quel champ caractérise mes utilisateurs réels des comptes systèmes et autres comptes qui ne sont pas des gens de la vraie vie :
openfire3

L’idée était ensuite dans mon cas de restreindre l’accès au service à un certain groupe d’utilisateurs, à savoir les “Correspondants Informatiques”, j’ai modifié la valeur standard de filtre utilisateur pour refléter mes choix :
openfire4
Pour celà, vous repérerez que le champ “memberOf” indique tous les groupes d’appartenance des utilisateurs, bref, vous modifiez le filtre pour y ajouter un (memberOf=CN=blabla,blabla,DC=blabla,DC=com).
Ainsi, seuls les utilisateurs de ce groupe seront pris en compte lors de l’authentification par AD.
Enfin, le bas du tableau permet de “mapper” les champs de l’utilisateur aux infos personnelles visibles via Jabber. Faites votre marché, utilisez le bouton “test” en bas pour voir si ça récupère ce qu’il faut comme il faut.

Ensuite, dans mon cas, le tri des utilisateurs en groupe était le bon par défaut :
openfire5

Et, dernière étape, déclarer des comptes admin parmi les comptes AD existant. Mettez votre compte :) car la modif à la main est moins simple (éditer le champ admin.authorizedJIDs dans les fichiers de conf de la base embarquée)

Voilà…
Une fois connecté à la console d’admin, allez voir la liste d’utilisateurs, vous devriez trouver uniquement le sous-ensemble sélectionné, “Correspondants Informatiques” dans mon cas.

Les clients

Vous pourrez utiliser pidgin ou le client de l’éditeur d’OpenFire, Spark – ou même sa version web pour éviter de déployer la moindre application. Ou tout autre client XMPP.
Ou faites votre choix là : http://en.wikipedia.org/wiki/List_of_XMPP_client_software

Vus : 659
Publié par Michauko : 64