Python Webanwendung an Active Directory anbinden
Hallo, wir haben den vagen Wunsch eines Kunden eine Intranetanwendung von uns ans Active Directory anzubinden. Wunsch: Gemeinsame Passwörter für Windows und die Intranetanwendung. Optional: Single-Sign-On. Für uns ist das Neuland, wir haben von Windows keine Ahnung. Hat jemand Erfahrung damit? Welche Hinweise/Tipps könnt ihr uns geben? Muss unser Linux-Server im AD aufgenommen werden? Oder reicht es mit LDAP die Authentifizierung der Nutzer durchzuführen? Gruß, Thomas
Ldap-auth reicht für auth. Für single-sign-on braucht die webanwendung dann aber afaik Anbindung ans kerberos des AD... -Arnold On 23. September 2014 08:06:58 MESZ, "Thomas Güttler" <guettliml@thomas-guettler.de> wrote:
Hallo,
wir haben den vagen Wunsch eines Kunden eine Intranetanwendung von uns ans Active Directory anzubinden.
Wunsch: Gemeinsame Passwörter für Windows und die Intranetanwendung.
Optional: Single-Sign-On.
Für uns ist das Neuland, wir haben von Windows keine Ahnung.
Hat jemand Erfahrung damit? Welche Hinweise/Tipps könnt ihr uns geben?
Muss unser Linux-Server im AD aufgenommen werden? Oder reicht es mit LDAP die Authentifizierung der Nutzer durchzuführen?
Gruß, Thomas
_______________________________________________ python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de
-- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
Am 23.09.2014 08:06, schrieb Thomas Güttler:
Muss unser Linux-Server im AD aufgenommen werden? Oder reicht es mit LDAP die Authentifizierung der Nutzer durchzuführen?
Für die LDAP-Auth sollte es genügen, wenn die Linux-Server eine "bind" ans AD machen kann. Für SSO braucht man Kerberos und man muss das Kerberos des Linux-Servers mit dem des AD zusammenbringen. Ein Windows-Mensch würde das sicher als "ins AD aufnehmen" bezeichnen. Wie genau das geht, kann ich nicht sagen, da ich ich es noch nie gesehen habe, es sollte aber gehen. (Eine kurze startpage.com-Suche liefert eine Lösungen, die aber all Samba benötigen, um den Linux-Server in die Domäne aufzunehmen. Sprechen aber auch von Betreibssystem-Authentifizierung.) Lass mich bitte wissen, was am Ende herausgekommen ist. -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/eine-millonen-aufkleber-fordern-asyl-fur-s... Kolumne: http://www.cissp-gefluester.de/2010-08-scheingefechte-um-rim Goebel Consult ist Mitglied bei http://www.7-it.de/
On 23.09.2014 08:06, Thomas Güttler wrote:
Hallo,
wir haben den vagen Wunsch eines Kunden eine Intranetanwendung von uns ans Active Directory anzubinden.
Wunsch: Gemeinsame Passwörter für Windows und die Intranetanwendung.
Optional: Single-Sign-On.
Für uns ist das Neuland, wir haben von Windows keine Ahnung.
Hat jemand Erfahrung damit? Welche Hinweise/Tipps könnt ihr uns geben?
Verwendet ihr einen Apache oder nginx Proxy vor eurer WSGI-Applikation? Es gibt die Möglichkeit, eine Webanwendung über Apache oder nginx Plugins ohne Änderung am Code und mit wenig Aufwand an Actieve Directory anzuschließen. Dabei könnt ihr aber nur unflexibel auf Attribute des Benutzers zugreifen und SSO nur mit Mehraufwand möglich. Ich habe das schon mehrfach für Applikationen gemacht. Das Plugin für Apache heißt authnz_ldap. Für Windows AD musst du den korrekten Base DN eintragen und sAMAccountName anstatt uid als Attribute für Login verwenden. Christian
Hallo erstmal "danke" an alle für eure antworten. SSO wollen wir erstmal nicht angehen. authnz_ldap nutzen wir schon in Zusammenhang mit OpenLDAP. Und wenn hier nur die Base-DN angepasst werden muss, dann ist diese Sache schneller erledigt als ich erst vermutet habe. Danke für eure Hilfe, Thomas Am 23.09.2014 um 15:02 schrieb Christian Heimes:
On 23.09.2014 08:06, Thomas Güttler wrote:
Hallo,
wir haben den vagen Wunsch eines Kunden eine Intranetanwendung von uns ans Active Directory anzubinden.
Wunsch: Gemeinsame Passwörter für Windows und die Intranetanwendung.
Optional: Single-Sign-On.
Für uns ist das Neuland, wir haben von Windows keine Ahnung.
Hat jemand Erfahrung damit? Welche Hinweise/Tipps könnt ihr uns geben?
Verwendet ihr einen Apache oder nginx Proxy vor eurer WSGI-Applikation? Es gibt die Möglichkeit, eine Webanwendung über Apache oder nginx Plugins ohne Änderung am Code und mit wenig Aufwand an Actieve Directory anzuschließen. Dabei könnt ihr aber nur unflexibel auf Attribute des Benutzers zugreifen und SSO nur mit Mehraufwand möglich. Ich habe das schon mehrfach für Applikationen gemacht.
Das Plugin für Apache heißt authnz_ldap. Für Windows AD musst du den korrekten Base DN eintragen und sAMAccountName anstatt uid als Attribute für Login verwenden.
Christian
_______________________________________________ python-de maillist - python-de@python.org https://mail.python.org/mailman/listinfo/python-de
Hallo, Am 2014-09-23 08:06, schrieb Thomas Güttler:
wir haben den vagen Wunsch eines Kunden eine Intranetanwendung von uns ans Active Directory anzubinden.
Das hab ich mit openATTIC durch. Die große Schwierigkeit daran ist, zu verstehen was man eigentlich vorhat.
Wunsch: Gemeinsame Passwörter für Windows und die Intranetanwendung.
Das hab ich gemacht, indem ich Django beigebracht habe, gegen PAM zu authentifizieren[0]. PAM macht dann die Drecksarbeit mit Auth gegen LDAP, hauptsächlich weil ich mich so garnicht wie möglich mit Auth gegen LDAP befassen wollte. ;) [0] https://bitbucket.org/openattic/openattic/src/tip/pamauth.py?at=default
Optional: Single-Sign-On.
Dann wirds tricky. Dazu brauchst du zunächst Samba + Winbind, die du in die Domäne joinst (net ads join), damit AD in der Lage ist Kerberos-Tickets für deinen Dienst auszustellen. Kerberos-Tickets sind quasi sowas wie dein Perso in der wirklichen Welt: Ein von einer vertrauenswürdigen third party -- dem AD -- ausgestellter Ausweis, der bestätigt, wer du bist. Beim Domain- Join gibt es ein paar Fallstricke, die wir mittlerweile mit unserem Join-Script[1] abgefangen kriegen, daran könntest du dich also orientieren. Wenn der Teil erstmal läuft, musst du "nur noch" dem Apachen beibringen, Kerberos-Tickets zu verstehen (also mod-auth-kerb passend konfigurieren), und deiner App beibringen dass "wenn REMOTE_USER im env steht, stimmt der". Ganz einfach oder? ;) Ist aber schon saucool wenn du dann einfach auf "Domänen-Login" drücken kannst und bist eingeloggt... [1] https://bitbucket.org/openattic/openattic/src/tip/bin/oaconfig?at=default#cl... Grüße, Michael
participants (5)
-
Arnold Krille
-
Christian Heimes
-
Hartmut Goebel
-
Michael Ziegler
-
Thomas Güttler