Kerberos-Authentifizierung

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Kerberos-Authentifizierung

Postby LonelyPixel » 14. June 2011 09:43

Hallo,

ich habe jetzt XAMPP 1.7.4 unter Windows 7 installiert. Nun möchte ich Kerberos-Authentifizierung einrichten, um zu testen, ob das mit Apache möglich ist. (Im IIS ist das als "Integrierte Windows-Anmeldung" ja üblich.) Leider habe ich im Web nur Informationen für Linux gefunden, aber nichts unter Windows. Man muss es wohl selber kompilieren, was zudem recht aufwändig sein soll. Bei XAMPP ist das Modul mod_auth_kerb nicht vorhanden. Wie bekomme ich das jetzt hin, ohne noch eine komplette Build-Umgebung für Unix-Code unter Windows einzurichten?
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 19. October 2011 14:56

Verwendet das niemand? Wie sehen denn eure Single-Sign-On-Lösungen in einem Windows-Netzwerk so aus?
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby Nobbie » 19. October 2011 22:43

LonelyPixel wrote:Verwendet das niemand? Wie sehen denn eure Single-Sign-On-Lösungen in einem Windows-Netzwerk so aus?


In welchem Anwendungskontext (Webapplikation) sollte ich mich denn mit UserIDs aus dem Host-System des Apache einloggen? Das habe ich noch nie verstanden.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 19. October 2011 22:45

Es geht doch darum, sich mit den Daten des Benutzers einzuloggen. Der Server ist egal, der hat eh immer dieselben Anmeldedaten.

http://de.wikipedia.org/wiki/Single_Sign-on
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby Nobbie » 20. October 2011 08:37

LonelyPixel wrote:Es geht doch darum, sich mit den Daten des Benutzers einzuloggen
http://de.wikipedia.org/wiki/Single_Sign-on


Weiß ich. Aber in welchem Kontext ist es sinnvoll, die Daten eines Windows-Domain Benutzers als UserID in einer WebApplikation zu verwenden?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 20. October 2011 11:05

Überall da, wo sich Mitarbeiter für Unternehmensanwendungen anmelden müssen. Z.B. für Zeiterfassungs-, CMS-, SCM- oder andere interne Webanwendungen. Wenn wir ein halbes Dutzend Webanwendungen im Intranet laufen lassen, möchte ich mich nicht überall separat anmelden. Die Admins spielen da auch nicht (gerne) mit. Prinzipiell gibt es SSO ja genau für diesen Zweck. (Das müsste doch auch auf der Wikiseite stehen?)

Ich habe mir als "Notlösung" schon überlegt, vielleicht auf einem einzigen IIS mit ASP.NET eine Art OpenID-Provider à la Google-Login laufen zu lassen, auf den dann alle Apache-PHP-Anwendungen einfach umleiten, um die Anmeldung des Benutzers durchzuführen. Wie das dann mit einer externen Anmeldung über die Firewall läuft (die ebenfalls die integrierte Windows-Anmeldung unterstützt), weiß ich aber nicht. Mit ASP.NET auf dem IIS läuft das eben alles wunderbar, aber mit Apache gar nicht. Jetzt kommt allerdings ein IIS 7 mit neuem FastCGI- und PHP-Interface daher (vllt. ist das besser als früher, da war es unzumutbar). Vielleicht sollte man Apache wirklich nicht in einem Unternehmens-Intranet verwenden, auch nicht für PHP-Anwendungen.
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby Nobbie » 20. October 2011 12:11

LonelyPixel wrote:Überall da, wo sich Mitarbeiter für Unternehmensanwendungen anmelden müssen. Z.B. für Zeiterfassungs-, CMS-, SCM- oder andere interne Webanwendungen. Wenn wir ein halbes Dutzend Webanwendungen im Intranet laufen lassen, möchte ich mich nicht überall separat anmelden. Die Admins spielen da auch nicht (gerne) mit. Prinzipiell gibt es SSO ja genau für diesen Zweck. (Das müsste doch auch auf der Wikiseite stehen?)


Vielleicht interpretiere ich in die Frage zu viel hinein (was aber auch daran liegt, dass man es in der Praxis leider so häufig vorfindet), aber meine Bedenken richten sich nicht gegen Single Sign On und Kerberos im Prinzip, sondern gegen die Tatsache, dass die meisten Programmieres das benutzen, um gegen die Standard-User von Windows-Domains abzugleichen. Der Login erfolgt nicht auf einer separaten, im Kontext der Anwendung gestalteten User-Datenbank, sondern auf der Windows-User-Datenbank. Und genau das ist total schräg (ist aber komischerweise vielen überhaupt nicht bewusst).

Ganz grob gefragt: würden diese Zeiterfassungs usw. Systeme (die ja unter Apache implementiert sind) einfach auf (beispielsweise) einen Standalone Linux Server portierbar sein (was ja eigentlich sehr einfach ist)? Ist die Benutzerdatenbank ein Teil des Systems (und wird bei Portierung ebenfalls portiert), oder wird einfach die Benutzerdatenbank von Windows benutzt, die ja den Kontext besitzt, Rechte im Windowsnetzwerk zu verwalten? Genau letzteres machen sehr viele Firmen, die meisten deswegen "weil es geht". Aber es ist grausam (und zwar grausam falsch, falsches Design). Übertrieben ausgedrückt: das wäre ungefähr so, als wenn man die Forenuser dieses Forums auch von einer Windows Domain verwalten läßt (oder unter Linux unter /etc/passwd). Das sind zwei verschiedene Schichten, die nichts miteinander gemeinsam haben - auch wenn die Menschen, die sie in den verschiedenen Kontext bedienen, die gleichen sind.

Letztendlich soll es mir egal sein, um auf die eigentliche Frage zurückzukommen: wenn Kerberos nicht in Xampp integriert ist, wirst Du es auch nur schwerlich nachkompilieren können. Es gibt zwar das Developer Package (zumindest gab es das früher - ich habe selbst lange nicht mehr damit herumgespielt), aber die Entwicklungsumgebung für Windows ist meist schlecht dokumentiert (man muss ja auch noch das genaue Release des VC Compilers treffen) und das kostet viel Zeit.

Da wäre es einfacher, die Anwendung richtig zu designen und beispielsweise mit einem eigenen Login gegen eine MySQL Datenbank zu versehen...
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby glitzi85 » 20. October 2011 14:01

@Nobbie: Das ist nicht schräg. Ein AD ist ein ganz normales Directory um Benutzer zu verwalten. Dass die Windows-Dienste sich darüber authentifizieren (und auch autorisieren) hat nichts damit zu tun, dass selbstverständlich auch Nicht-Windows-Dienste dieses Directory nutzen können um Benutzer zu authentifizieren. Denn aus genau diesem Grund gibt es zentrale Authentifzierungsserver, damit man nicht für jede blöde Webapp eigene Zugansdaten benötigt.

@LonelyPixel: Wie wäre es stattdessen mit SSPI: http://sourceforge.net/projects/mod-auth-sspi/
Hab das grad kurz ausprobiert, auf meinem lokalen Laptop (Windows7 64bit) funktioniert das mit XAMPP ohne Probleme. Mit Kerberos willst du dich eh nicht wirklich rumschlagen, das Protokoll macht echt keinen Spaß.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Kerberos-Authentifizierung

Postby Nobbie » 20. October 2011 14:34

glitzi85 wrote:@Nobbie: Das ist nicht schräg. Ein AD ist ein ganz normales Directory um Benutzer zu verwalten. Dass die Windows-Dienste sich darüber authentifizieren (und auch autorisieren) hat nichts damit zu tun, dass selbstverständlich auch Nicht-Windows-Dienste dieses Directory nutzen können um Benutzer zu authentifizieren. Denn aus genau diesem Grund gibt es zentrale Authentifzierungsserver, damit man nicht für jede blöde Webapp eigene Zugansdaten benötigt.


Doch, das ist schräg. Aber gerade wegen Leute wie Dir, die so etwas glauben verbreiten zu müssen, entstehen so fehlerhafte Applikationen. Nicht jede Anwendung (egal aus welchem Kontext) hat sich am zentralen Authentifizierungsserver anzumelden (frei nach dem Motto, dafür ist er doch da). Wenn das Datenmodell eine Entität "User" kennt, muss dieser User aus dem dazugehörigen Kontext generiert werden - und nicht einfach aus irgendeinem Authentifizierungsserver aus einer ganz anderen Anwendungsschicht, nur weil er eben da ist.

Natürlich KANN MAN zentrale Authentifizierungsserver als TECHNIK dazu benutzen, aber die meisten Anwender verstehen das falsch und benutzen DIESELBE BENUTZERDATENBANK (und das ist der Fehler, den ich meine). Eine einzige Benutzerdatenbank für verschiedene Layers ist total falsch designed - nimm das von mir genannte Beispiel, würdest Du ernsthaft die Nutzer dieses Forums hier gegen die Windows-Benutzerdatenbank eines zentralen Domänen-Servers authentifizieren?
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby glitzi85 » 20. October 2011 15:15

Nobbie wrote:nimm das von mir genannte Beispiel, würdest Du ernsthaft die Nutzer dieses Forums hier gegen die Windows-Benutzerdatenbank eines zentralen Domänen-Servers authentifizieren?

Nein, macht bei öffentlichen Diensten keinen Sinn, da das Anlegen von Benutzern ohne Windows-Tools keinen Spaß macht. Außerdem ist die Lizenzierung schwierig bis unmöglich (davon abgesehen auch noch teuer). Das liegt aber daran, dass ein AD für ein ganz anderes Einsatzgebiet gemacht ist (Intranet). Und innerhalb dieses Einsatzgebietes ist es auch Sinnvoll, Benutzer über diesen Server zu authentifizieren.
Prinzipiell spricht aber nichts dagegen für eine öffentliche Plattform die Benutzernamen/Passwörter in einem LDAP-Directory zu speichern. Es ist doch egal ob man Benutzer gegen MySQL oder LDAP authentifiziert (sofern das entsprechende Modul vorhanden ist).

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 20. October 2011 15:36

Ich glaube, Nobbie kennt keine Intranets oder hat den Zweck von SSO nicht verstanden. Die Intranet-Anwendungen, die ich kenne, verfügen sehr wohl über eine eigene Benutzertabelle, denn es müssen ja auch anwendungsspezifische benutzerbezogene Daten gespeichert werden. Nur hat diese Benutzertabelle eben keine Spalte "Kennwort", sondern nur einen Benutzernamen, der dem Windows-Anmeldenamen entspricht. SSO wird ausschließlich zur Authentifizierung verwendet, nicht zur Benutzerverwaltung. Und die Windows-Anmeldung (oder Active Directory) ist eben nur in geschlossenen Netzwerken praktikabel (oder: für eine geschlossene Benutzergruppe).

Aber auch im öffentlichen Web gibt es SSO-Lösungen. OpenID ist z. B. eine davon. Dabei werden in den jeweiligen Anwendungen auch keine Kennwörter mehr gespeichert, sondern nur die "öffentlichen" OpenIDs. Die Authentifizierung des Benutzers läuft dann über DNS und den OpenID-Providerserver, der den Benutzer wiederum sonstwie überprüfen kann (Kennwort, Fingerabdruck, Windows-Anmeldung usw.).

Das SSPI schau ich mir mal an. Auf dem o. a. Link ist ja leider kaum was zu finden, außer dem Programm selbst. Aber mit diesem Suchbegriff mach ich mich mal auf die Reise. Ich weiß grad gar nicht mehr, wie ich konkret auf Kerberos gekommen bin. Hab das wohl auch nur durch eine Suche zum Thema gefunden und meinte dann, dass ich das brauche.
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby Nobbie » 20. October 2011 23:27

glitzi85 wrote:Es ist doch egal ob man Benutzer gegen MySQL oder LDAP authentifiziert (sofern das entsprechende Modul vorhanden ist).


Vollkommen richtig. Nur ist es NICHT egal, welche Datenbestände man dabei benutzt. Und es ist eine weit verbreitete "Unsitte", die Windows-User für vollkommen andere Anwendungen in vollkommen anderem Kontext zu benutzen.

LonelyPixel wrote:Ich glaube, Nobbie kennt keine Intranets oder hat den Zweck von SSO nicht verstanden


Und ich weiß, dass Du falsch glaubst. Es ist sinnlos darüber zu diskutieren. Vielleicht verstehst Du es später irgendwann. Vielleicht auch nicht - ist mir auch egal.

LonelyPixel wrote:Nur hat diese Benutzertabelle eben keine Spalte "Kennwort", sondern nur einen Benutzernamen, der dem Windows-Anmeldenamen entspricht.


Genau was ich vermutet hatte. Grauenhaft.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 21. October 2011 07:29

Dir macht das wohl Spaß, dir für wirklich jede Anwendung (und du glaubst gar nicht, wie viele das sein können) einen anderen Benutzernamen und ein noch anderes Kennwort zu merken. In Firmen macht das niemand. Warum auch, wenn Authentifizierung einfach funktionieren kann, und man sich nicht mehr darum zu kümmern braucht. Und es wäre auch purer Wahnsinn, eine nie versiegende Fehlerquelle und Produktivitätsstopper Nummer eins. Im echten Leben hast du auch keine 218 Identitäten, sondern jeder erkennt dich an deinem einzigen Gesicht oder deiner einzigen Stimme. Es ist 2011, Computer können das jetzt auch, sie es bitte ein.
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Re: Kerberos-Authentifizierung

Postby Nobbie » 21. October 2011 09:32

LonelyPixel wrote:Es ist 2011, Computer können das jetzt auch, sie es bitte ein.


Ok, ich lasse es mir jetzt von Dir erklären.

Ein einfaches Szenario:

Herr Meier betritt morgens sein Büro, macht seinen Arbeitsplatzrechner an und logged sich mit "meier" und Passwort gegen einen Windows-Domänen-Server ein. Er ist ein Arbeitnehmer von vielen, der sich gerade einloggt.

Nun ist er "signed on".

Im Laufe des Tages möchte er ein Dokument vom von Dir installierten Xampp / Apache Server abrufen. Das ist ein eigener Rechner im gleichen Windows-Netzwerk, dort läuft Apache ganz normal als Dienst unter der UserID "System".

Herr Meier startet seinen Browser (sagen wir Firefox), gibt in der URL-Zeile eine geeignete URL ein und erwartet nun ein Dokument (sagen wir aus einem CMS, wie Du schriebst) mit bestimmten Inhalten. Wir betrachten erst einmal zwei Varianten:

a) Herr Meier fordert ein Dokument an, was nur bestimmte User sehen dürfen. Die UserID "meier" ist u.a. auch berechtigt.

b) Herr Meier fordert ein Dokument an, was auf ihn zugeschnitten ist (persönliches Setup eines CMS beispielsweise). Die URL ist allerdings neutral und läßt nicht erkennen, dass User "meier" das Dokument anfordert (gilt selbstverständlich auch für Punkt a).

Du erklärst mir jetzt, wie und was Apache nun macht, damit die Forderung erfüllt wird.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Kerberos-Authentifizierung

Postby LonelyPixel » 21. October 2011 09:48

Apache (bzw. die Webanwendung) ist so programmiert/konfiguriert, dass sie diese Seiten nicht ohne Benutzerauthentifizierung ausliefert. Also antwortet der Webserver mit dem HTTP-Status 401 (Authentication required) an den Browser. Der versucht, sich mit der Windows-Anmeldung zu authentifizieren. Der Webserver erkennt und prüft die Anmeldung und die Webanwendung akzeptiert (autorisiert) sie und gewährt Hrn. Meier Zugang zur Webseite, dem Dokument oder was auch immer.

Das ist aber nicht spezifisch für einen bestimmten Server oder Browser. Die verhalten sich auf dem Netzwerk alle gleich (wenn sie richtig konfiguriert sind und die erforderlichen Verfahren unterstützen). Und in diesem Thread geht es genau um die Unterstützung von Apache (in XAMPP) für dieses Authentifizierungsverfahren. Die Windows-Anmeldung ist auch nur eins von vielen Verfahren wie z. B. HTTP-Basic-Authentifizierung, nur lässt sie sich eben auf Client-Seite automatisieren (ohne dass Kennwörter in einem oder mehreren Browsern gespeichert werden müssen - wo sie wahlweise verfallen oder ausspioniert werden).

Im Gegensatz zu einer separaten Anmeldung wird der Browser aber kein Anmeldeformular anzeigen und auch nicht in HTTP-Manier nach Benutzername und Kennwort fragen, in das Hr. Meier seinen Benutzernamen wie z. B. "x.meier" und ein vom Windowskonto abweichendes Kennwort eingeben muss, sondern die Webanwendung verlässt sich auf die Windows-Anmeldung und deren Sicherheit. So muss Hr. Meier z. B. auch nicht alle drei Monate 5 Kennwörter ändern, und vertippt sich alle drei Monate bei jedem davon, sondern er muss nur eins ändern und vertippt sich nur einmal am Tag.
LonelyPixel
 
Posts: 35
Joined: 25. April 2010 16:34
XAMPP version: 7
Operating System: Windows 10

Next

Return to XAMPP für Windows

Who is online

Users browsing this forum: CptEureka and 22 guests