Verständnisfrage Kerberos SSO

Alles, was den Apache betrifft, kann hier besprochen werden.

Verständnisfrage Kerberos SSO

Postby sykerjoe » 02. March 2011 09:37

Morgen,


Habe mal ne Frage bez. Kerberos.

Wenn ich ein System habe mit einem windows 2008 AD, und einer Linux kiste mit Apache server,
und ich habe für apache und AD sso konfiguriert. Ist es möglich das sich zB. bei der Anmeldung am Netzwerk über das AD sich Kerberos die LoginDaten vom AD weitegeben kann, wenn ich jetzt zB. auf eine SS0
Webseite im Netzwerk will?... oder repräsentiert Kerberos bei der SSO Authentifizierung mit Apache immer nur die Daten die man für Kerberos konfiguriert hat.

Warum ich frage?:

Wenn ich mir Logdateien von einem Web System anschauen will, dann soll auf der ServerSeite nicht der Kerberos Loginname stehen sondern der Login vom angemeldeten User vom Netzwerk.

Ist das techn. machbar?

grüße sykerjoe
sykerjoe
 
Posts: 29
Joined: 21. December 2010 11:39

Re: Verständnisfrage Kerberos SSO

Postby sykerjoe » 03. March 2011 08:39

Ist eigentlich jemanden klar was ich wissen will ?
sykerjoe
 
Posts: 29
Joined: 21. December 2010 11:39

Re: Verständnisfrage Kerberos SSO

Postby Totengraeber » 20. April 2011 15:59

Hi,

ich glaube ich versteh es.
In deinen Logs siehst du "username@REALM" (Wenn der User sich z.B. in Windows mit "DOMAIN\usr0815" anmeldet siehst du "usr0815@do.main").
Das Problem ist, dass sich das nicht wirklich ändern lässt. Bei Kerberos laufen ja keine Nutzer-Informationen in dem Sinne.

Der Nutzer ruft die Website auf. Er bekommt ein Negotiate zurück. Der client frägt am AD-Controller nach einem Kerberos-Ticket.
Dieses Ticket bescheinigt lediglich das User "usr0815" sich ordnungsgemäß am Client mit seinem Account angemeldet hat. Da sind effektiv nur ein paar IDs und Hashwerte enthalten und natürlich der Nutzername (dass die Ordnungsgemäße Ausstellung auch nachvollzogen werden kann).
Und eben dieser Nutzername wird AD-seitig immer in dem Schema "<user_logon_name>@<domain-REALM>" umgesetzt. Das ist fest in der MIT-Kerberos-Implementation so definiert und von anderen Implementierungen so übernommen.
Der Vollständigkeit halber zurück zu unserem Use-Case:
Der Client hat nun also das Ticket und schickt an den Webserver nochmal den Request, diesmal mit Krb-Ticket. Dieser hat ja normalerweise für jeden REALM (oder eben ein Default-REALM) wo er die ordnungsgemäße Ausstellung des Tickets verifizieren kann. Dazu schickt er einfach den Nutzernamen aus dem Ticket zusammen mit der Ticket-ID an den AD-Controller und erhält von ihm ein Go oder eben NoGo.
Weitere Nutzerdetails werden bei der Kerberos-Authentifizierung damit aber eben weder übertragen noch verifiziert.

Um auf deine ursprüngliche Frage damit zurückzukommen:
Nein, das ist leider nicht möglich.

Wenn ich mir die Hintergründe jetzt aber zusammenreime, gehe ich davon aus, dass es dir wahrscheinlich um eine Log-Auswertung geht und du dort lieber die AD-Display-Names stehen hättest als die andere Schreibweise, right?
Wenn ja, wir haben das so gelöst, dass wir per LogRotate im Post-CMD das ganze Log an ein Script weiter geben anstatt direkt an ein Statistik-Tool. Das Skript geht jetzt her, sucht sich den Usernamen aus dem Log und frägt per LDAP einfach im AD den Display-Name ab, ersetzt das im Log und schickt das ganze dann weiter ein AWStats.
Dazu zwei kleine Tipps:
1.) Wenn ihr einen Forest > 1 Domain habt, nehm einen Global Catalog Server!
2.) Setz den DisplayNamen in Anführungsstriche oder ersetze Komme/Leerzeichen durch andere Zeichen, da sonst AWStats durcheinander kommt ;-)
Totengraeber
 
Posts: 15
Joined: 11. June 2008 13:39


Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests