Hi, ich möchte für meinen Samba AD Server ein Webbackend bauen, um einige Benutzeraktionen ausführen zu können.
Hintergrund: Im AD gibt es die Gruppen "Schüler" und "Lehrer", sowie verschiedene Klassen-Gruppen (z.B. "Klasse_10a"). Ich brauche für die Lehrerschaft ein kleines Web-Tool um z.B. alle Klassen anzuzeigen, von einer Klasse auf die Liste der darin befindlichen Schüler zu navigieren und ggf. für einzelne Schüler z.B. das Passwort zurückzusetzen. Dazu sollen auch der Internetzugang (serverseitig via IpTables realisiert) beeinflusst werden können.
Mein bisheriger Ansatz:
Ich habe diverse Wrapper um samba-tool, iptables etc. geschrieben, die mit Pythons
os.popen
arbeiten. Das ganze funktioniert, ist teilweise aber ganz schön langsam (z.B. wenn zu den Schülern jeweils der Benutzername angezeigt werden soll, arbeite ich mit samba-tool user edit <name> --editor=cat | grep blabla).Für den Login in das Tool bin ich bisher IP-basiert via smbstatus vorgegangen, d.h. habe mir die UserID für die aktuelle IP geholt, wie wbinfo in den Nutzernamen umgewandelt und anschließend geprüft, ob er zur Mitgliederliste der Gruppe 'Lehrer' gehört. Nur blöderweise scheint smbstatus nicht verlässlich das zu liefern was ich suche: Bei Inaktivität verschwinden Nutzer, die sich nicht mehr ins Tool einloggen können, ausgeloggte Nutzer bleiben teilweise längere Zeit als online markiert "hängen" etc.
Daher überlege ich folgendes:
den Login von smbstatus unabhängig machen (notfalls Username+Passwort des AD-Accounts im Browser anfordern).
oder das gesamte Webbackend und meine Wrapper kippen, weil ich gerade versuche das Rad neu zu erfinden? (mit Sicherheit^^)
Welche Möglichkeiten zur Realisierung eines Webbackends habe ich?
LG Glocke
PS: Webbackend läuft via nginx via https reverse proxy via gunicorn wsgi server via python bottle wsgi app.