LDAP und Thunderbird - Ex/Import LdapRW

  • Hallo Gemeinde,


    vorweg - nein, das ist keine Frage "ich hab keinen bock etwas selber zu schaffen - ich frage lieber" :-)


    Seit fast 2 Jahren versuche ich hier erfolgreich LDAP zu integrieren, ich bin nicht dumm - aber an LDAP habe ich mir immer irgendwie die Zähne ausgebissen. Nach dem Urlaub nun hatte ich es erneut versucht und auch recht erfolgreich.


    LDAD (slapd) steht, Einträge sind in Grundform enthalten, OUs existieren
    Grafisches Frontend (ldapadmin) ist installiert und läuft, thunderbird kann zugreifen und abfragen etc etc


    Nun die Königsdisziplin, nach x Jahren Thunderbird liegen auf meinen zahlreichen PCs sehr viele Adressen in Form von "Gesammelten Adressen" und "Persönlichen Adressbüchern" usw usf herum. Diese habe ich nun alle EXPORTIERT, als ldif versteht sich.


    Dann fand ich heraus das man erst tbirdfix (ein perl skript) beuaftragen soll einige zeichen zu ersetzen, dies tat ich auch bei einem testfile.


    Herausgekommen ist schlichtweg nichts. Ich kann nichts importieren ohne "invalid syntax" zu ernten , Auszüge hier :


    import.ldif

    Code
    1. dn: ou=mailkontakte,dc=einname,dc=com
    2. objectclass: top
    3. objectclass: person
    4. objectclass: organizationalPerson
    5. objectclass: inetOrgPerson
    6. objectclass: mozillaAbPersonAlpha
    7. mail: die@mail.de


    Importiere ich dies nun mit a) ldapadmin erhalte ich :


    Code
    1. Hinzufügen... ou=mailkontakte,dc=einname,dc=com fehlgeschlagen
    2. Error code: 21
    3. Beschreibung: Invalid syntax


    mache ich es b) mit ldapadd und dem genauen befehl


    Code
    1. ldapadd -h 10.0.0.60 -x -D "cn=admin,dc=einname,dc=com" -p 389 -c -W -f /freigabe/firmend2/cad-test.ldif


    so erhalte ich ebenfalls die invalid syntax


    nun habe ich die objectclasses ausgetauscht, rumgefrickelt usw usf - alles mist.


    Dann habe ich mir gedacht das es ggf. mit "ldaprw" aus dem thundebrird inoffiziellen addon-repository gehen könnte, doch dort erhalte ich lediglich "Error: genrdn: basisRdn.length = 0" - dazu habe ich dann bei google wieder zahlreiche hilfen gefunden (auch eine in diesem forum) - jedoch sind sie meist bei einem endstand von "könnte/aber/wenn/dann" beendet worden, also ohne klares ergebnis.


    Alles in allem ist LDAP noche ine super hohe Hürde für mich und ich würde mich serh über Rat freuen!

  • Hallo Nostraddi,


    da gibt es sicher nicht viele im Forum, die dir da helfen können.
    Ich habe mal eine PN an einen LDAP_Wissenden geschickt und wenn der Lust und Zeit und gute Laune hat, meldet er sich bestimmt.



    Bedenke: wir sind ja auch nur User und nicht immer präsent :rolleyes:

  • Hi Nostraddi,


    Diese Schemen hast du bestimmt alle in deiner slapd.conf:

    Code
    1. # Einlesen von externen Konfigurationsdateien (Schemen)
    2. include /etc/openldap/schema/core.schema
    3. include /etc/openldap/schema/cosine.schema
    4. include /etc/openldap/schema/inetorgperson.schema
    5. include /etc/openldap/schema/nis.schema
    6. include /etc/openldap/schema/mozillaAbPersonAlpha.schema
    7. include /etc/openldap/schema/extension.schema


    Dann poste mir bitte mal dein tbirdfix-script. Ich benutze folgendes Script, welches ich mal im Netz gefunden und auf meine Verhältnisse angepasst habe:


    Dann hilft es immer, wenn du im TB eine Adresskarte komplett ausfüllst. Damit siehst du, wie es im Endeffekt aussehen muss. Bsp. hier:


    Und das hier ist die Struktur, welche ich bei allen den Beispielen genutzt habe:
    (Weswegen "habe": Das war meine erste Bastelarbeit mit dem ldap. Jetzt mache ich eine komplette Nutzerverwaltung damit, aber vor allem meine Zertifikatsverwaltung für X.509-Zertifikate.)


    Vielleicht hilft es dir was ... .


    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Hallo Peter,


    erstmal Danke für Deinen und "rum"s Feedback, das ist nett. Natürlich sind wir alle nur Menschen, ich sehe nur wenig Chancen das ganze noch irgendwann einmal auf die Beine zu stellen wenn ich es hier im TB Forum schon nicht schaffen kann :-)


    Also, die Schemen sind exakt wie meine, das ist okay.


    Das tbirdfix ist ebenfalls auf mich modifiziert:


    Code
    1. asterisk:/etc/ldap# cat tbirdfix
    2. #!/usr/bin/perl -pi
    3. s/dn: cn=\"(.*)\"/dn: cn=$1/;
    4. s/mail=.*/ou=mailkontakte,dc=meinefqd,dc=meinetld/;
    5. s/givenName: \"/givenName: /;
    6. s/cn: \"(.*)\"\n/cn: $1/;
    7. s/sn: (.*)\"\n/sn: $1\n/;
    8. s/modifytimestamp.*\n//;
    9. s/xmozillanickname.*\n//;
    10. s/objectclass: mozillaAbPersonObsolete/objectclass: mozillaOrgPerson/;


    Ich habe mir gerade nochmals Deinen Ratschlag zur Herzen genommen und eine Karte mal ganz ausgefüllt (insgesamt sind es 1890 Kontaktdaten, tlw. nur "email" ohne namen - tlw. mit Namen und Handy, keine Email...) Am liebsten würde ich es im Datenbank Stil pflegen, dann könnte man auch vieles automatisch einsetzen und editieren..


    Mir fiel auf :


    Code
    1. [b]dn:[/b] cn=P.Irgendwer,ou=mailkontakte,dc=meinetfqd,dc=meinetld
    2. objectclass: top
    3. objectclass: person
    4. objectclass: organizationalPerson
    5. objectclass: inetOrgPerson
    6. objectclass: mozillaAbPersonAlpha
    7. givenName: Peter
    8. sn: Irgendwer
    9. cn: P.Irgendwer
    10. mail: jemand@irgendwo.de


    Das sieht ja ganz gut aus - das dn: cn=P.[...] sieht etwas selten aus und ist in jedem Eintrag zu finden.


    Es gibt aber auch zahlreiche Einträge die so aussehen :


    Code
    1. dn: cn=Vor und Nachname
    2. objectclass: top
    3. objectclass: person
    4. objectclass: organizationalPerson
    5. objectclass: inetOrgPerson
    6. objectclass: mozillaAbPersonAlpha
    7. givenName: Nachname
    8. sn: Nachname
    9. cn: Voller Name
    10. mobile: 0123456


    Da fehlte mal eben die ou= dc= dc=


    Lasse ich egal welchen Eintrag (meinetwegen auch mit dem Schalter -f (nicht abbrechen bei Fehlern)) durchlaufen komme ich jedoch zu keinem Ziel - er bemängelt meistens "origanizationalPerson" (s.o.) oder dann halt etwas anderes...


    Vielleicht ist es das beste - alle Kontaktdaten ersteinmal in eine Art Datenbank (meinetwegen auch nur excel) zu bringen, dort zu vervollständigen und dann einzulesen - das ist aber eigentlich Riesenmist da es dann immer so laufen muss, idealerweise würde sich der ldap server mit dem thunderbird automatisch synchronisieren (so wie es bei ldaprw vorgesehen ist) - dann würde sich sogar das Telefonbuch (geht autom. in TB ein) mit dem LDAP synchronisieren und das ganze wäre keine Einbahnstraße....


    LG Stefan

  • Hi Stefan,


    ja, "ldap" lernt man nicht in ein paar Stunden ... .
    Ich darf beruflich einen großen Verzeichnisdienst mit ein paar 100.000 Einträgen nutzen, und das auch noch mit einigen erweiterten Rechten. Und das hat mich so interessiert, dass ich mich ein paar Wochen mit dem Thema befasst habe. Aber nachdem ich meinen eigenen kleinen slapd zum Laufen gebracht habe, habe ich ihn nicht mehr angefasst. Er läuft eben.


    Bei mir sind es ggw. nur ca. 180 private Einträge. Das übliche aus dem Thunderbird, wie bei dir viele reine Adresseinträge, aber dann eben auch meine Zertifikatsverwaltung. Und das ganze auf einer 600 MHz-Notebookruine ohne Deckel - dafür aber nur mit einer Leistungsaufnahme von ganzen 8 Watt/Std.


    Ich bin so herangegangen:
    - eine conf ohne jegliche Schnörkel (kein ssl, kein auth usw.)
    - befüllen mit der Struktur, Admin usw.
    - import des ersten exportierten Datensatzes aus dem Thunderbird => jener, den ich gepostet hatte
    - dann Versuch des Imports aller Datensätze => hat kleine Probleme mit Umlauten gegeben, sonst glatt durchgelaufen!
    - und jetzt die Schnörkel, um die erforderlichen Sicherheitsmaßnahmen mal so zu nennen.
    - und zum Schluss bei allen meinen TB-Installationen (und denen anderer Personen, die den ldap nutzen dürfen) die Adressierung auf ldap umgestellt ... .
    Ich hatte also keine nennenswerten Probleme - und kann deswegen auch nichts zu deinen (dn: cn=P.[...]) sagen.


    Kleiner Tipp: Im Linux-Club gibt es jemand (stka), der sich wirklich professionell mit dem Thema befasst, und der auch sehr hilfsbereit ist. Poste doch mal dort .... .


    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Hallo Peter,


    Kann ich machen - aber am Rande, ist LDAP bei Dir ebenfalls eine Einbahnstraße, also darauf angewiesen das Du mit manuellem Aufwand die ggw. 180 Einträge aktualisierst..?! Wenn ein Neuer hinzukommt muss der solange warten bis er übertragen wird, oder wie machst Du das?


    LG Stefan

  • Zuerst einmal gibt es wirklich gute ldap-Browser mit vielen nützlichen Funktionen. So zum Bsp. den DirX-Manager, den ich auf Arbeit benutze. Privat nutze ich "gq" oder den "Jxplorer", mit denen das Einpflegen neuer DS ein Kinderspiel ist.
    Wenn dann alles zur Zufriedenheit läuft! kannst du dich mit der entsprechenden TB-Erweiterung befassen. Auch diese läuft gut - wenn auch nicht so komfortabel wie gute ldap-Browser.
    Die Denkweise beim Add-on ist so, dass du dann lokal auf dem Client alles editierst (eben TB-like) und dann mit Klick auf "Sync" mit dem Server synchronisierst. Es muss eben jede Änderung händisch syncronisiert werden. Hat auch seine Vorteile, man kann dann noch mal nachdenken ... .


    Selbstverständlich ist es möglich, dass du die Rechte so setzt, dass jeder seinen eigenen DS editieren kann. Auch beim Lesen kannst du wunderbar Rechte setzen (jeder eingetragene Nutzer darf lesen, zumindest einige Felder aller Nutzer, dafür freigegebene Felder des eigenen DS, eigenes PW ändern, uvam.) Aber das ist schon wieder "hohe Schule".


    Ich habe es bei mir bewusst so konfiguriert, dass:
    - die eingetragenen Nutzer sich mit einem X.509-Zertifikat am Server anmelden, und
    - sie alle DS lesen können. Also alles, was im TB angezeigt wird.
    Selbstverständlich könnten sie das auch mit dem ganz normalen ldap-Browser.
    Der einzige, der Schreiben kann, bin ich.


    Und:
    Bei deiner Anzahl von DS gehe ich mal davon aus, dass es sich nicht mehr um eine private Adressensamlung handelt.
    Bei mir ist das aber eine solche. Ich habe insgesamt ggw. ganze 8 Nutzer, die den ldap überhaupt nutzen. Für mich ist es eben "nur" meine kleine private Adressensammlung, die ich nur einmal pflegen will, und auf die ich immer und von "überall" zugreifen kann. Und natürlich eine große Scheibe "Hobby" ... .
    Es gibt noch eine zweite Sache.
    Ich betreibe "nebenher" eine kleine Privat-CA, wo ich für Familie, Freunde, Forenmitglieder und immer mehr Leute jedes Jahr ein paar Hundert X.509-Zertifikate herstelle. Was vor Jahren als Mittel für die ungestörte Kommunikation zwischen Freunden und in der Familie begann, nimmt langsam so große Dimensionen an, dass ich allmählich auf openCA umstelle. Also auf halbautomatischen Betrieb, wo jeder seine Daten auf einer CA-Webseite selbst eintragen kann. Und im Hintergrund läuft dann der ldap ... .


    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Hört sich ganz interessant (wenn auch noch etwas unbekannt) an.


    Zitat


    Bei deiner Anzahl von DS gehe ich mal davon aus, dass es sich nicht mehr um eine private Adressensamlung handelt.


    Recht haste. Es ist die Adresssammlung der Synchronisation aller Aussendienstler und mir, als deren Leiter.


    Das ganze läuft seit Jahren so, das man :


    -> unterwegs im Handy einfach mal einen Neuen Kunden/Lieferanten anlegen kann (nur mit SonyEricsson möglich)
    -> nähert man sich dem Empfang (hier) - wird das Handy eben über BT leergesaugt und somit synchronisiert, es werden Neue Termine eingespielt und alle Neuen ausgelesen, alte Aufgaben überprüft (erledigt oder noch offen) etc etc


    Das ist mein Goal - ich möchte es gerne schaffen diese Daten in den LDAP zu bekommen, am besten automatisiert, da die Zahl der DS kontinuierlich steigend ist. Habe ich den Krempel im LDAP, kann ich davon firmenweit von jedem Telefon und natürlich Web zugreifen, kann es mit Skripten leicht verarbeitet werden usw usf.


    Alternative wäre nur die Pflege in einem "PlainText" File, aber da denke ich immer sofort an "Geschwindigkeitsbremse" .... daher habe ich das schon immer gerne über LDAP lösen wollen...


    Ich werde mich einfach nochmal mit Deinem tbirdfix auseinandersetzen, das scheint mir aktuell die beste Möglichkeit zu sein - und natürlich erst einmal 1 Kontakt importieren, dann hat man wenigstens noch eine Übersicht.


    Nochmals Vielen Dank an dieser Stelle!


    Stefan