Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
externe_authentisierungsschnittstelle [2016/12/16 07:56] – lwsystems | externe_authentisierungsschnittstelle [2022/09/13 19:12] (aktuell) – [Beispiel: Zusätzliche Aliase] lwsystems | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Die Authentisierung gegen eine externe Benutzerdatenbank (z.B. LDAP oder ActiveDirectory) erfolgt mit Hilfe eines externen Programms. Dieses prüft die Anmeldedaten gegen die externe Datenbank und gibt den Status zurück. | Die Authentisierung gegen eine externe Benutzerdatenbank (z.B. LDAP oder ActiveDirectory) erfolgt mit Hilfe eines externen Programms. Dieses prüft die Anmeldedaten gegen die externe Datenbank und gibt den Status zurück. | ||
- | Der Programmpfad wird in der Konfigurationsdatei im Parameter EXTERNAL_AUTH festgelegt. Zum Beispiel: | ||
- | |||
- | < | ||
- | EXTERNAL_AUTH = / | ||
- | </ | ||
===== Authentisierungs-Protokoll ===== | ===== Authentisierungs-Protokoll ===== | ||
- | Das Authentisierungs-Modul | + | Ein Authentisierungsmodul |
+ | Beim Login werden der Reihe nach alle Authentiserungsmodule im Verzeichnis ''/ | ||
+ | ====== Beispiel: Zusätzliche Aliase | ||
- | ====== Beispiel: " | + | Einigen Usern soll zusätzlich Zugriff auf einzelne Adressen ermöglicht werden. Die Konfiguration über die LDAP-Attribute würde eine Erweiterung des LDAP-Schemas erfordern und ist daher nicht einfach umsetzbar. |
- | Es soll sich ein externer Benutzer, der nicht im zentralen Verwaltungssystem gepflegt werden kann, am Benno MailArchiv anmelden können. | + | In diesem Fall wird ein einfaches Authentisierungsmodul '' |
- | Dieses Szenario läßt sich sehr einfach mit einem Wrapper-Script lösen, welches mehrere Authentisierungsmodule nacheinander aufruft. In der Datei ''/ | + | Das Authentisierungsmodul '' |
- | < | + | Das Authentisierungsmodul muss ausführbar sein: '' |
- | EXTERNAL_AUTH = / | + | |
- | </code> | + | |
+ | Die CSV-Datei '' | ||
+ | |||
+ | ===== csv_aliases ===== | ||
- | Das Script benno_authwrapper ruft das Authentisierungsmodul mit den zusätzlichen Benutzern auf. Falls hier die Authentisierung fehlschlägt, | ||
< | < | ||
- | #!/bin/sh | + | #!/bin/bash |
# | # | ||
- | # File: / | + | # / |
# | # | ||
- | # | + | ADDRESSMAP=/ |
- | read username password | + | |
- | logger -p auth.info "Benno login request for \" | + | read BENNOUSER BENNOPASSOLD |
+ | read BENNOPASS | ||
- | # Extra user | + | if [ "${BENNOPASS}x" |
- | echo "$username $password" | + | |
- | RETVAL=$? | + | else |
- | if [ ${RETVAL} -eq 0 ];then | + | |
- | | + | |
- | | + | |
fi | fi | ||
- | echo " | + | if [ "${BENNOPASS}z" = z ];then |
- | RETVAL=$? | + | |
- | if [ ${RETVAL} -eq 0 ];then | + | |
- | | + | exit |
- | else | + | |
- | | + | |
fi | fi | ||
- | </ | + | grep " |
+ | echo "MAIL ${ALIASADDRESS}" | ||
+ | done | ||
+ | </ | ||
- | Das Script mit dem zusätzlichen Benutzer ist im einfachsten Fall wie folgt aufgebaut. | ||
- | < | + | ===== benno_addressmap.csv ===== |
- | #!/bin/sh | + | |
- | # | + | |
- | # File: / | + | |
- | # | + | |
- | # | + | |
- | read username password | + | |
- | if [ " | + | <file csv> |
- | echo ' | + | s.petersen;buchhaltung@hansen-und-meyer.de |
- | echo 'ROLE USER' | + | k.schmidt; |
- | echo ' | + | k.schmidt; |
- | echo 'MAIL sammelpostfach@lw-systems.net' | + | u.hansen; |
- | exit 0 | + | u.hansen; |
- | fi | + | </file> |
- | exit 1 | + | |
- | </code> | + |