FAQ:Arktur4/LDAP als Thunderbird-Adressbuch: Unterschied zwischen den Versionen

Aus Delixs
Zur Navigation springen Zur Suche springen
(→‎Allgemeines: Schreibfehler)
 
(kat)
 
(5 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Allgemeines ==
__NOTOC__
{{Archiv}}
 
 
== Adressbuch direkt im LDAP ==
 
'''Frage:'''
 
Wie kann ich die Daten aus dem LDAP als Adressbuch für Thunderbird nutzen?
 
 
'''Antwort:'''
 
In Thunderbird V2.0.0.6 kann der LDAP als Adressbuch verwendet werden, so dass die anderen „Arkturianer“ nicht von Hand ins eigene Adressbuch eingegeben werden müssen. Diese Notizen fassen Ideen von Harry Jede, Thorsten Strusch, Hans-Dietrich Kirmse und Uwe Schoffer zusammen.
In Thunderbird V2.0.0.6 kann der LDAP als Adressbuch verwendet werden, so dass die anderen „Arkturianer“ nicht von Hand ins eigene Adressbuch eingegeben werden müssen. Diese Notizen fassen Ideen von Harry Jede, Thorsten Strusch, Hans-Dietrich Kirmse und Uwe Schoffer zusammen.


== Einstellungen in Thunderbird ==
== Einstellungen in Thunderbird ==
'''Thunderbird - Einstellungen'''
'''Thunderbird - Einstellungen'''
* Extras – Einstellungen – Verfassen – Adressieren
* Extras – Einstellungen – Verfassen – Adressieren
Zeile 8: Zeile 21:
* Bearbeiten – Hinzufügen
* Bearbeiten – Hinzufügen
[[Bild:Thunderbird-LDAP_Tab_Allgemein.jpg]]
[[Bild:Thunderbird-LDAP_Tab_Allgemein.jpg]]
[[Bild:Thunderbird-LDAP_Tab_Erweitert.jpg]]
[[Bild:Thunderbird-LDAP_Tab_Erweitert.jpg]]


Zeile 16: Zeile 30:


== Ergänzungen auf Arktur ==
== Ergänzungen auf Arktur ==
Thunderbird überträgt bis jetzt nur leere Textfelder, da die entsprechenden Felder im LDAP noch leer sind. Am einfachsten lässt sich das mit folgendem Skript korrigieren.
Thunderbird überträgt bis jetzt nur leere Textfelder, da die entsprechenden Felder im LDAP noch leer sind. Am einfachsten lässt sich das mit folgendem Skript korrigieren.


  #!/usr/bin/perl -w
  #!/usr/bin/perl -w
  use strict;
  use strict;
  use Net::LDAP;
  use Net::LDAP;
  my ($ldap, $ldap_base, $pass, $entry, $value, $domain, $mesg, $temp,  
$mailadress);  
  my ($ldap, $ldap_base, $pass, $entry, $value, $domain, $mesg, $temp, $mailadress);  
  # wir holen uns die Such-Basis ($ldap_base) aus der ldap.conf
   
<font color="#C0C0C0"># wir holen uns die Such-Basis ($ldap_base) aus der ldap.conf</font>
  open DATEI, '<', '/etc/ldap.conf' or die "konnte ldap.conf nicht oeffnen, $!\n";
  open DATEI, '<', '/etc/ldap.conf' or die "konnte ldap.conf nicht oeffnen, $!\n";
  while (my $zeile = <DATEI>) {
  while (my $zeile = <DATEI>) {
Zeile 32: Zeile 49:
  }
  }
  close DATEI;
  close DATEI;
  # da wir die Mail-Adresse in den LDAP schreiben, brauchen wir noch das Passwort
   
  open DATEI, '<', '/etc/ldap.secret' or die "konnte ldap.secret nicht oeffnen,  
<font color="#C0C0C0"># da wir die Mail-Adresse in den LDAP schreiben, brauchen wir noch das Passwort</font>
$!\n";
  open DATEI, '<', '/etc/ldap.secret' or die "konnte ldap.secret nicht oeffnen, $!\n";
  $pass = <DATEI>;
  $pass = <DATEI>;
  chomp($pass);
  chomp($pass);
  close DATEI;
  close DATEI;
  # wir verbinden uns mit dem LDAP
   
<font color="#C0C0C0"># wir verbinden uns mit dem LDAP</font>
  $ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "$@";
  $ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "$@";
  $ldap->bind( dn => "cn=admin, $ldap_base", password => $pass)
  $ldap->bind( dn => "cn=admin, $ldap_base", password => $pass)
   or die "konnte mich nicht mit dem Server verbinden";  
   or die "konnte mich nicht mit dem Server verbinden";  
  # wir holen uns den Domainname aus 'dhcpOption' von 'cn=DHCP Service Config'
   
<font color="#C0C0C0"># wir holen uns den Domainname aus 'dhcpOption' von 'cn=DHCP Service Config'</font>
  $mesg = $ldap->search(base  => "cn=DHCP Service Config,o=DHCP, $ldap_base",
  $mesg = $ldap->search(base  => "cn=DHCP Service Config,o=DHCP, $ldap_base",
                       filter => "dhcpOption=*",
                       filter => "dhcpOption=*",
Zeile 50: Zeile 69:
  $value = $entry->get_value( "dhcpOption" );
  $value = $entry->get_value( "dhcpOption" );
  ($domain) = $value =~ /^\s*domain-name\s*"([^"]*)"$/;  
  ($domain) = $value =~ /^\s*domain-name\s*"([^"]*)"$/;  
  # wir holen uns von den Usern die uid (= Login) und den Eintrag für 'mail'
   
<font color="#C0C0C0"># wir holen uns von den Usern die uid (= Login) und den Eintrag für 'mail'</font>
  $mesg = $ldap->search(base  => "o=SCHULE, $ldap_base",
  $mesg = $ldap->search(base  => "o=SCHULE, $ldap_base",
                       filter => "(|(gidNumber=101)(gidNumber=102))",
                       filter => "(|(gidNumber=101)(gidNumber=102))",
                       attrs  => ['uid', 'mail'] );
                       attrs  => ['uid', 'mail'] );
  $mesg->code and die $mesg->error;  
  $mesg->code and die $mesg->error;  
  # wenn Value fuer 'mail' nicht vorhanden, dann erstellen und in LDAP schieben
   
<font color="#C0C0C0"># wenn Value fuer 'mail' nicht vorhanden, dann erstellen und in LDAP schieben</font>
  foreach my $entry ($mesg->entries) {
  foreach my $entry ($mesg->entries) {
   $temp = $entry->get_value('mail');
   $temp = $entry->get_value('mail');
   if ( !defined( $temp ) or $temp eq '' ) {
   if ( !defined( $temp ) or $temp eq &quot;&quot;) {
     $mailadress = $entry->get_value('uid') . '@' . $domain;
     $mailadress = $entry->get_value('uid') . '@' . $domain;
     $ldap->modify( $entry->dn, add => { mail => $mailadress } );
     $ldap->modify( $entry->dn, add => { mail => $mailadress } );
   }
   }
  }
  }
  # wir trennen uns vom LDAP
   
<font color="#C0C0C0"># wir trennen uns vom LDAP</font>
  $ldap->unbind;
  $ldap->unbind;


Zeile 77: Zeile 99:


== Nutzungshinweise ==
== Nutzungshinweise ==
* Falls das Kontaktefenster nicht sichtbar ist, über Ansicht – Kontakte-Sidebar einblenden
* Falls das Kontaktefenster nicht sichtbar ist, über Ansicht – Kontakte-Sidebar einblenden
* Adressbuch = Arktur-LDAP
* Adressbuch = Arktur-LDAP
* Bei Suche nach muss „* *“ (Stern Leerzeichen Stern, ohne Anführungszeichen) eingegeben werden, damit alle Namen aufgelistet werden.  
* Bei Suche nach muss „* *“ (Stern Leerzeichen Stern, ohne Anführungszeichen) eingegeben werden, damit alle Namen aufgelistet werden.  
* Per Drag-And-Drop oder über die „>> AN“- und „>>CC“-Buttons in das Adressfeld übertragen.
* Per Drag-And-Drop oder über die „>> AN“- und „>>CC“-Buttons in das Adressfeld übertragen.
----
<div align="right">[[FAQ:Arktur4|zurück]] | [[Hauptseite]]</div>
[[Kategorie:ArchivArktur40]]

Aktuelle Version vom 16. März 2012, 13:31 Uhr


Baustelle Archiv: Dieser Artikel beschreibt nicht die Funktionalität des derzeit aktuellen delixs-Servers. Er beschreibt ältere Schulserver-Funktionen und dient dem Zweck der Archivierung.


Adressbuch direkt im LDAP

Frage:

Wie kann ich die Daten aus dem LDAP als Adressbuch für Thunderbird nutzen?


Antwort:

In Thunderbird V2.0.0.6 kann der LDAP als Adressbuch verwendet werden, so dass die anderen „Arkturianer“ nicht von Hand ins eigene Adressbuch eingegeben werden müssen. Diese Notizen fassen Ideen von Harry Jede, Thorsten Strusch, Hans-Dietrich Kirmse und Uwe Schoffer zusammen.

Einstellungen in Thunderbird

Thunderbird - Einstellungen

  • Extras – Einstellungen – Verfassen – Adressieren
  • LDAP-Verzeichnisserver = ja
  • Bearbeiten – Hinzufügen

Thunderbird - Konten

  • Extras – Konten – user@..... – Verfassen&Adressieren – Adressieren
  • Einen anderen LDAP-Verzeichnisserver verwenden = Arktur-LDAP auswählen
  • Thunderbird neu starten.

Ergänzungen auf Arktur

Thunderbird überträgt bis jetzt nur leere Textfelder, da die entsprechenden Felder im LDAP noch leer sind. Am einfachsten lässt sich das mit folgendem Skript korrigieren.

#!/usr/bin/perl -w

use strict;
use Net::LDAP;

my ($ldap, $ldap_base, $pass, $entry, $value, $domain, $mesg, $temp, $mailadress); 

# wir holen uns die Such-Basis ($ldap_base) aus der ldap.conf
open DATEI, '<', '/etc/ldap.conf' or die "konnte ldap.conf nicht oeffnen, $!\n";
while (my $zeile = <DATEI>) {
  if ($zeile =~ m/^\s*base\s+(\w.*\w)\s*$/) {
    $ldap_base = $1;
    last;
  }
}
close DATEI;

# da wir die Mail-Adresse in den LDAP schreiben, brauchen wir noch das Passwort
open DATEI, '<', '/etc/ldap.secret' or die "konnte ldap.secret nicht oeffnen, $!\n";
$pass = <DATEI>;
chomp($pass);
close DATEI;

# wir verbinden uns mit dem LDAP
$ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "$@";
$ldap->bind( dn => "cn=admin, $ldap_base", password => $pass)
  or die "konnte mich nicht mit dem Server verbinden"; 

# wir holen uns den Domainname aus 'dhcpOption' von 'cn=DHCP Service Config'
$mesg = $ldap->search(base   => "cn=DHCP Service Config,o=DHCP, $ldap_base",
                     filter => "dhcpOption=*",
                     attrs  => "dhcpOption",
                     scope  => "base" );
$entry = $mesg->shift_entry;
$value = $entry->get_value( "dhcpOption" );
($domain) = $value =~ /^\s*domain-name\s*"([^"]*)"$/; 

# wir holen uns von den Usern die uid (= Login) und den Eintrag für 'mail'
$mesg = $ldap->search(base   => "o=SCHULE, $ldap_base",
                      filter => "(|(gidNumber=101)(gidNumber=102))",
                      attrs  => ['uid', 'mail'] );
$mesg->code and die $mesg->error; 

# wenn Value fuer 'mail' nicht vorhanden, dann erstellen und in LDAP schieben
foreach my $entry ($mesg->entries) {
  $temp = $entry->get_value('mail');
  if ( !defined( $temp ) or $temp eq "") {
    $mailadress = $entry->get_value('uid') . '@' . $domain;
    $ldap->modify( $entry->dn, add => { mail => $mailadress } );
  }
}

# wir trennen uns vom LDAP
$ldap->unbind;
  • Auf dem T:-Laufwerk Datei erstellen und mit UNIX-Umbrüchen abspeichern.
  • Als root auf der Konsole z.B. nach /root/tools/ldap verschieben und Rechte ggf. anpassen
chown root:root /root/tools/ldap/email-in-ldap
chmod 750 /root/tools/ldap/email-in-ldap
  • Ein Mal von Hand starten, dann sind alle aktuellen User verfügbar
  • Damit zukünftige User ebenfalls verfügbar sind, ggf. regelmäßige Ausführung per crontab einrichten.
crontab –u root –e
30 8,13 * * * /root/tools/ldap/email-in-ldap > /dev/null
  • Um den Vorschlag mit job.TAG.mailaddress umzusetzen, kenne ich mich zu wenig aus.

Nutzungshinweise

  • Falls das Kontaktefenster nicht sichtbar ist, über Ansicht – Kontakte-Sidebar einblenden
  • Adressbuch = Arktur-LDAP
  • Bei Suche nach muss „* *“ (Stern Leerzeichen Stern, ohne Anführungszeichen) eingegeben werden, damit alle Namen aufgelistet werden.
  • Per Drag-And-Drop oder über die „>> AN“- und „>>CC“-Buttons in das Adressfeld übertragen.



zurück | Hauptseite