Drücke „Enter”, um zum Inhalt zu springen.

Eigener XAMPP Chat-Server – ejabberd

Manuel 0

Es stand die Idee im Raum, für die schnelle Kommunikation zwischendurch einen Chat-Server aufzusetzen. Da das ganze kein großer Akt werden sollte und wir uns auch nicht mit speziellen Chat-Clients rumschlagen wollten, viel die Wahl schnell auf einen XAMPP Server.

Quick & Dirty für die, die das notwendige Grundwissen haben:

Nach etwas Googlen und nachforschen hat es sich dann gezeigt, dass ejabberd wohl die optimale Wahl für „mal eben schnell“ ist. Und das war Sie auch. Um den Server direkt in ein ActiveDirectory zu integrieren, über dass Authentifizierung wie auch Abfrage der Benutzerdaten erfolgt, braucht man „nur“ folgende Konfiguration:

%%
%% Authentication using LDAP
%%
{auth_method, ldap}.
%%
%% List of LDAP servers:
{ldap_servers, ["10.100.1.5"]}.
%%
%% Encryption of connection to LDAP servers:
{ldap_encrypt, none}.
%%
%% Port to connect to on LDAP servers:
{ldap_port, 389}.
%%
%% LDAP manager:
{ldap_rootdn, "domain\\user"}.
%%
%% Password of LDAP manager:
{ldap_password, "1234567"}.
%%
%% Search base of LDAP directory:
{ldap_base, "dc=example,dc=com"}.
%%
%% LDAP attribute that holds user ID:
{ldap_uids, [{"sAMAccountName", "%u"}]}.
%%
%% LDAP filter:
{ldap_filter, "(&(objectClass=user)(givenname=*)(sn=*)(mail=*))"}.
%%
%% Search base of LDAP directory:
{ldap_base, "dc=example,dc=com"}.
%%
%% LDAP attribute that holds user ID:
{ldap_uids, [{"sAMAccountName", "%u"}]}.
%%
%% LDAP filter:
{ldap_filter, "(&(objectClass=user)(givenname=*)(sn=*)(mail=*))"}.
%% Modules enabled in all ejabberd virtual hosts.
%%
{modules,
 [
  {mod_shared_roster_ldap, [
        {ldap_base, "dc=example,dc=com"},
        {ldap_groupattr, "department"},
        {ldap_groupdesc, "department"},
        {ldap_rfilter, "(&(objectClass=user)(givenname=*)(sn=*)(mail=*))"},
        {ldap_memberattr, "sAMAccountName"},
        {ldap_userdesc, "cn"}
  ]},
  {mod_vcard_ldap, [
        {ldap_vcard_map, %% It maps the LDAP attributes in to friendly names
        [
                {"NICKNAME", "%s", ["displayName"]},
                {"GIVEN", "%s", ["givenName"]},
                {"MIDDLE", "%s", ["initials"]},
                {"FAMILY", "%s", ["sn"]},
                {"FN", "%s", ["displayName"]},
                {"EMAIL", "%s", ["mail"]},
                {"ORGNAME", "%s", ["company"]},
                {"ORGUNIT", "%s", ["department"]},
                {"CTRY", "%s", ["c"]},
                {"LOCALITY", "%s", ["l"]},
                {"STREET", "%s", ["streetAddress"]},
                {"REGION", "%s", ["st"]},
                {"PCODE", "%s", ["postalCode"]},
                {"TITLE", "%s", ["title"]},
                {"URL", "%s", ["wWWHomePage"]},
                {"DESC", "%s", ["description"]},
                {"TEL", "%s", ["telephoneNumber"]}]},
        {ldap_search_fields, %% It specifies the posible search fields when you want to search an user
        [
                {"User", "%u@your-domain.com"},
                {"Name", "givenName"},
                {"Family Name (Surname)", "sn"},
                {"Email", "mail"},
                {"Company", "company"},
                {"Department", "department"},
                {"Role", "title"},
                {"Description", "description"},
                {"Phone", "telephoneNumber"}]},
        {ldap_search_reported, %% It specifies the reported fields as result of the search
        [
                {"Full Name", "FN"},
                {"Nickname", "NICKNAME"},
                {"Email", "EMAIL"}]}
  ]}
 ]}.

Die ganzen anderen Konfigurationssachen erwähne ich jetzt nicht extra – die sind soweit selbsterklärend und mit etwas Know-How auch schnell korrekt konfiguriert. Die aufgelisteten Sachen sind die, die man für die AD Integration benötigt.

Man sollte gewisse Grundkentnisse in Sachen LDAP-Abfragen haben. Das kann einem sehr helfen, wenn das ganze irgendwie nicht laufen möchte.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.