Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| externe_authentisierungsschnittstelle [2017/10/26 10:57] – [Zusätzliche Aliase] lwsystems | externe_authentisierungsschnittstelle [2025/08/19 07:56] (aktuell) – [csv_aliases] 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 | |
| - | ===== " | + | |
| - | + | ||
| - | ====== Externe User ====== | + | |
| - | + | ||
| - | Es sollen sich externe Benutzer, die nicht im zentralen Verwaltungssystem gepflegt werden können, an Benno MailArchiv anmelden können. Dieses Szenario läßt sich mit Hilfe eines Authentisierungsstacks lösen. | + | |
| - | + | ||
| - | In der Datei ''/ | + | |
| - | + | ||
| - | < | + | |
| - | EXTERNAL_AUTH = / | + | |
| - | </ | + | |
| - | + | ||
| - | Danach wird das Verzeichnis ''/ | + | |
| - | + | ||
| - | <code bash> | + | |
| - | mkdir / | + | |
| - | ln -s / | + | |
| - | ln -s / | + | |
| - | </ | + | |
| - | + | ||
| - | Das Authentisierungsmodul ruft der Reihe nach alle Authentiserungsmodule im Verzeichnis auf, bis die Authentisierung erfolgreich war. | + | |
| - | + | ||
| - | In diesem Fall kann die Authentisierung gegen einen IMAP-Server mit Hilfe von [[benno-imap]] oder gegen die Interne Datenbank erfolgen. | + | |
| - | + | ||
| - | ====== | + | |
| 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. | 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. | ||
| Zeile 44: | Zeile 15: | ||
| In diesem Fall wird ein einfaches Authentisierungsmodul '' | In diesem Fall wird ein einfaches Authentisierungsmodul '' | ||
| - | Zuerst | + | Das Authentisierungsmodul '' |
| - | <code bash> | + | Das Authentisierungsmodul muss ausführbar sein: '' |
| - | mkdir / | + | |
| - | ln -s /usr/ | + | |
| - | </ | + | |
| - | Im nächsten Schritt wird das Authentisierungsmodul | + | Die CSV-Datei |
| - | + | ||
| - | Das Authentisierungsmodul muss ausführbar sein: '' | + | |
| - | + | ||
| - | Die [[# | + | |
| ===== csv_aliases ===== | ===== csv_aliases ===== | ||
| - | < | + | < |
| #!/bin/bash | #!/bin/bash | ||
| # | # | ||
| - | # / | + | # / |
| # | # | ||
| - | ADDRESSMAP=/ | + | ADDRESSMAP=/ |
| read BENNOUSER BENNOPASSOLD | read BENNOUSER BENNOPASSOLD | ||
| read BENNOPASS | read BENNOPASS | ||
| - | if [ ${BENNOPASS}x = x ];then | + | if [ "${BENNOPASS}x" |
| - | BENNOPASS=${BENNOPASSOLD} | + | BENNOPASS="${BENNOPASSOLD}" |
| else | else | ||
| - | BENNOUSER=" | + | |
| + | | ||
| + | fi | ||
| fi | fi | ||
| - | if [ ${BENNOPASS}y = y ];then | + | if [ "${BENNOPASS}z" |
| echo "ERROR ERR_NOPASS\n"; | echo "ERROR ERR_NOPASS\n"; | ||
| >&2 echo " | >&2 echo " | ||
| exit | exit | ||
| fi | fi | ||
| - | + | grep "^${BENNOUSER};" | |
| - | grep ${BENNOUSER} ${ADDRESSMAP} | cut -d\; -f2 | while read ALIASADDRESS; | + | |
| echo "MAIL ${ALIASADDRESS}" | echo "MAIL ${ALIASADDRESS}" | ||
| done | done | ||