LDAP / PHP / Windows login

Tags:    php

Hej PHP eksperter,

Jeg har et spørgsmål angående Windows login. Jeg har et netværk der benytter AD som jeg har forbindelse til med LDAP fra php intranetsiden. Jeg kan printe brugere ud med deres oplysninger ud fra AD'et. Det er ikke her problemet er!!!!

Nej mit spørgsmål er hvordan man kan hive brugernavnet som en bruger logger ind i windows med?

Da jeg gerne i sidste ende vil kunne tjekke windows brugernavnet med AD't brugernavnet for derefter at hente brugerens oplysninger når brugeren træder ind på php intranet siden.

Hvis i kan give et kodeeksempel for dette, ville det være en stor hjælp.

Tak for hjælpen.



3 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Har du checket i $_SERVER om der ikke skulle stå noget?
Måske $_SERVER['LOGON_USER']??



Jeg vil ikke mene at man bare sådan lige kan hente brugernavnet som en given bruger har logget ind i windows med. Det er ikke fordi jeg ved en masse om sikkerhed, men jeg vil mene det vil være sikkerhedsmæssigt uforsvarligt da hvem som helst så ville kunne få fat i dit brugernavn.

Hvis du derimod gør brug af noget authentication som fx NTLM eller Kerberos vil dine brugerinformation blive sendt (krypteret) med til web serveren og valideret op imod domain og som jeg forstår dig har du et AD hvor din apache server er medlem af domainet og alle brugere af intranet siden formentlig også er oprettet som brugere i AD'et.

Jeg har fået NTLM til at virke sådan:

Download apache modulet 'mod_auth_sspi' (det skal passe til din apache version) fra
Fold kodeboks ind/udKode 

Unzip og kopier filen 'mod_auth_sspi.so' til apache/modules (eller hvor du nu har dine moduler)
I zip filen er der også dokumentation til modulet, så tjek det!

Ret herefter din httpd.con fil:
Fold kodeboks ind/udKode 

Genstart Apache serveren og tjek om du har en værdi i $_SERVER['REMOTE_USER'] og $_SERVER['AUTH_TYPE'].

Det skal siges at jeg benytter Internet Explorer, så hvordan det vil virke med en anden browser ved jeg ikke.

Håber du kan bruge det til noget. Hvis nogen ved hvor der kan findes yderligere dokumentation til ovenstående er jeg meget interesseret.



Indlæg senest redigeret d. 03.11.2009 14:20 af Bruger #14472
Har du checket i $_SERVER om der ikke skulle stå noget?
Måske $_SERVER['LOGON_USER']??


Den melder bare undefined index: LOGON_USER

Ellers tester jeeg bare:
echo "
ENV:
<pre>
print_r($_ENV)
</pre>
SERVER:
<pre>
print_r($_SERVER)
</pre>";

...... uden held da ENV er et tomt array og i SERVER er der intet brugeligt!

Kan det have noget at gøre med den nye php version 5.2.3? eller mangler jeg at inkluder nogen moduler til apache'n eller php tilføjelser for at få vist ENV variabler i 'PHP Variabler' når phpinfo() bruges.



t