Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
externe_authentisierungsschnittstelle [2017/10/26 10:58] – [Zusätzliche Aliase] lwsystems | externe_authentisierungsschnittstelle [2022/09/13 19:11] – [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 | |
- | ===== " | + | |
- | + | ||
- | ====== 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 wird das Verzeichnis ''/ | + | Das Authentisierungsmodul '' |
- | + | ||
- | <code bash> | + | |
- | mkdir / | + | |
- | ln -s / | + | |
- | </ | + | |
- | + | ||
- | Im nächsten Schritt wird das Authentisierungsmodul '' | + | |
Das Authentisierungsmodul muss ausführbar sein: '' | Das Authentisierungsmodul muss ausführbar sein: '' | ||
- | Die CSV-Datei [[# | + | Die CSV-Datei |
===== 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 |