[PHP/Linux/Apache] Windows authentication checken?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Topicstarter
Ik weet niet of ik in het goede forum zit omdat het met een aantal verschillende dingen te maken heeft, ik heb natuurlijk al google en de search gebruikt maar de antwoorden zijn allemaal een beetje vaag. Een forum post hier kwam erbij in de buurt maar bood geen goede oplossing en op google kwam ik op een aantal modules uit, waaronder bijvoorbeeld NTLM (http://modntlm.sourceforge.net/) maar deze werken nog niet goed.

We hebben een Debian Linux server met Apache2 en PHP en daarop hosten wij een website waar mensen op kunnen/moeten inloggen met een form. Het zou het mooist zijn als men niet hoeft in te loggen maar dat we kunnen zien als wie iemand is ingelogd op zijn eigen client pc en hem dan automatisch op de website kunnen laten inloggen als hij in hetzelfde domein zit met zijn eigen username.

Er is een Windows Active Directory server aanwezig waar we 100% lees toegang op hebben, we kunnen paswoorden wel checken maar natuulijk niet uitlezen. Nou kan je met Windows 2003 Server en Windows XP Professional van Windows authenticatie gebruik maken om te zien wie er op een pc is ingelogd als hij met IIS een website bezoekt, met Linux+PHP+Apache is dit niet zo makkelijk te doen en daar zit dus ons probleem. We gebruiken OpenLDAP en kunnen op de Linux server de Active Directory wel uitlezen, maar niet zien wie er op een pc is ingelogd als deze de website bezoekt.

Er zijn een aantal projecten voor PHP en Apache waarmee dit mogelijk moet zijn, maar die zijn eigenlijk allemaal in beta fase en werken niet goed. Kortom, is er een simpele manier om met een Linux server te weten te komen wie er is ingelogd met een Windows XP client pc die die server via port 80/Apache bezoekt ?

Edit: Wij hebben ook al over Java client scripts nagedacht, maar als het serverside kan is dat beter.

[ Voor 3% gewijzigd door Taro op 27-04-2004 13:09 ]

Replace fear of the unknown with curiosity | 54 kWh thuisaccu's | Tesla Model Y LR & Model 3 SR+ | Totaal 190 kWh opslag | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Jelmer
  • Registratie: Maart 2000
  • Laatst online: 13:50
Volgens mij kijkt IIS niet wie er ingelogd is op een PC, maar zend IE automatisch en zonder te vragen de NTLM hash naar de server indien deze dat ondersteund. Met andere woorden, je dient NTLM in PHP te krijgen via een module.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-09 18:51
Jelmer: dat kan bijna niet kloppen, want allerlei Microsoft webapplicaties die het ook kunnen (Microsoft SQL Server Web Data Administrator bijvoorbeeld) werken ook uitstekend met Mozilla/Firefox (ik heb het zelf nooit met IIS geprobeerd).

Acties:
  • 0 Henk 'm!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Volgens mij is het inderdaad wat Jelmer zegt - Mozilla emuleert het NTLM authentication systeem en is het idd een browser setting.

[google=WWW-Authenticate: NTLM] levert o.a. dit op: http://www.innovation.ch/java/ntlm.html ? :)

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Topicstarter
Ja, die url kende ik ook al, die hoort bij dat programma(niet echt programma, meer de werking) dat ik noemde :), maar er is een probleem, hij checkt je authenticatie niet 100% goed en doet er verder weinig mee, ik moet een username hebben, niet weten of iemand bij de AD is ingelogd.

Ik heb het inmiddels opgelost met active x, alle clients hebben windows xp, kunnen alleen IE als browser gebruiken en als dat ip als trusted staat werkt het dus perfect :)

[ Voor 6% gewijzigd door Taro op 28-04-2004 20:12 ]

Replace fear of the unknown with curiosity | 54 kWh thuisaccu's | Tesla Model Y LR & Model 3 SR+ | Totaal 190 kWh opslag | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 20-09 18:51
Als ik het goed begrijp worden er niet-standaard headers gebruikt. Die kun je niet vanuit PHP benaderen (ook niet via CGI trouwens) dus een PHP-only oplossing is niet mogelijk. Je zult dus een NTLM module voor Apache moeten gebruiken. Je moet dan trouwens alsnog een domain server hebben om gebruikers bij te authenticeren (maar dat is logisch).

Ik zie dat je die NTLM module al gevonden had. Wat was daar precies kapot aan? Je hebt het zelf nu al anders opgelost, maar ik zou het wel aardig vinden om te weten hoe het nu precies zou moeten

[ Voor 21% gewijzigd door Soultaker op 28-04-2004 21:07 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Topicstarter
Ons probleem was om op een makkelijke manier met NTLM te kunnen zien wie er op een pc was/is ingelogd. Nadat we NTLM gemake'd hadden, httpd.conf aangepast hadden en Apache gerestart hadden merkten we nergens iets van, ook is de documentatie over wat je hoe en wanneer moet doen slecht en is het een beta versie die bijna niet getest is. Op een gegeven moment gingen we zoeken naar andere oplossingen, Java, Javascript, Applets, etc. Uiteindelijk kwamen we op Active X uit waarmee je het in 4 regeltjes kan doen, wat wil je nog meer :)

Dus misschien krijg jij het aan het werk en heb je de zin en tijd wat meer uit te zoeken over NTLM, voor ons was het vooral het niet 100% begrijpen wat je wanneer moet doen, misschien weet jij of begrijp jij dat wel, grote kans dat het dan wel werkt, probeer het zou ik zeggen :)

Replace fear of the unknown with curiosity | 54 kWh thuisaccu's | Tesla Model Y LR & Model 3 SR+ | Totaal 190 kWh opslag | 10.660 Wp zonnepanelen

Pagina: 1