Avatar billede jakobdo Ekspert
02. februar 2011 - 15:01 Der er 14 kommentarer og
1 løsning

Windows brugernavn gennem apache/php/ubuntu

Hej,
jeg har sjovt nok tidligere afvist en spørgers spørgsmål, af samme karakter.
Men nu er jeg jo så blevet det klogere.
Dog driller det.
Jeg har fundet:
http://search.cpan.org/~speeves/Apache2-AuthenNTLM-0.02/AuthenNTLM.pm
http://modntlm.sourceforge.net/

Men disse er begge begrænset, at de kun kører med ntlm (version 1).
Og fra Vista og op, så anvender windows ntlmv2 (version 2).
Og dermed dur disse løsninger ikke længere.

Jeg har også fundet følgende side:
http://siphon9.net/loune/2009/09/ntlm-authentication-in-php-now-with-ntlmv2-hash-checking/

og koden kan hentes her:
https://github.com/loune/php-ntlm

Den sidste løsning, har jeg dog leget lidt med.
Og hvis jeg lader følgende kode blive eksekveret:
header('WWW-Authenticate: NTLM');

Så kommer en login boks og trykker jeg annuller på den, så får jeg faktisk stadig brugernavn og computernavn retur.

Kan jeg ikke få denne ntlm response uden at browseren popper op med et login billede?

Og er der ellers andre som kender en løsning?

Det skal lige siges, der er tale om en løsning som skal køres internt og mod et AD miljø.

Overvejer også at smide php på en iis, da den skulle understøtte dette "out-of-the-box".

Og sidste løsning, er at være ligeglad med brugerkontrollen. :o)

Jakob
Avatar billede euhp Nybegynder
02. februar 2011 - 15:46 #1
Jeg mener dit problem kan løses ved et sted i dine webmapper at lave en mappe der IKKE kræver autentifikation. Så bør browseren modtage brugernavnet fra IIS selvom der ikke er autentifikation.
Avatar billede jakobdo Ekspert
03. februar 2011 - 08:59 #2
Kan man afvikle IIS på en Ubuntu ?
Avatar billede repox Seniormester
03. februar 2011 - 09:23 #3
#2
Jeg har ladet mig fortælle at IIS godt vil køre på Wine - så det må også kunne køre på Ubuntu - men at det kører utroligt langsomt.

Dit overordnede spørgsmål har jeg begrænset viden om, men kan dog huske at vi på min tidligere arbejdsplads forsøgte noget lignende hvor vi brugte et NTLM modul til Apache (det eneste vi kunne finde) og det var temmelig buggy. Og en hurtig Google søgning viser også at det modul heller ikke bliver (aktivt) vedligeholdt siden 2007.

Så vidt jeg også husker fra StackOverflow har der været en del spørgsmål hvor det gentagne gange er blevet konkluderet at kun IIS'en understøtter en ordentlig implementation samtidig med at IE skal sættes op til at sende credentials med til et angivet intranet - hvilket måske kan være den reelle løsning på din php-ntlm løsning fra GitHub? Altså at sætte IE op til at medsende de credentials til din løsning hvor du bruger php-ntlm.

Kigger man på denne side - http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/index.jsp?topic=/com.ibm.itame2.doc_5.1/am51_webservers_guide118.htm - kan man også se at det ikke er helt forkert (hvis man har tillid nok til IBM ;) ) at IE skal sættes op til at medsende de credentials - så prøv det; hvis det er løsningen kan AD'et vel også sættes op til at give AD brugernes IE de rette indstillinger?
Avatar billede jakobdo Ekspert
03. februar 2011 - 09:27 #4
Jeg har været alle modulerne igennem og de virker som sagt fint, bare kun til og med Windows XP.
Vista og Win7 fejler.
Men det ender nok med jeg må finde en IIS server et sted, sådan noget møg.
Avatar billede repox Seniormester
03. februar 2011 - 09:31 #5
#4
Du har min dybeste medfølelse... :)
Avatar billede jakobdo Ekspert
03. februar 2011 - 09:37 #6
Dog tænker jeg.
Det som sker, når man med kode kalder:
header('WWW-Authenticate: NTLM');

Og der kommer en login boks op.
Kunne man ikke kalde den "skjult" ?
Avatar billede repox Seniormester
03. februar 2011 - 10:36 #7
Jeg er selv blevet lidt nysgerrig nu... :p
Har du prøvet denne?
http://bloke.org/windows/ridiculously-simple-ntlm-authentication-for-apache-ubuntu/
En lidt 'nyere' artikel, men da jeg ikke selv bruger Ubuntu, har jeg ikke lige haft muligheden for at prøve det af...

For at supplere med lidt informationer, så er det lykkedes mig med mod_auth_sspi at lade IE og FF brugere logge ind på trusted intranets således at der ikke spørges om brugernavn og kodeord efter man er logget på AD'et.
Brugernavnet dukker op under $_SERVER["PHP_AUTH_USER"] og al opsætning foregik i Apaches konfigurations fil.
Avatar billede jakobdo Ekspert
03. februar 2011 - 10:42 #8
repox: Jeg har ikke været forbi denne artikel, men det er samme løsning: AuthenNtlm.

mod_auth_sspi skulle kun virke, hvis du kører apache i Windows miljø.
Gør du det ?
Avatar billede repox Seniormester
03. februar 2011 - 10:56 #9
Vi har en Apache/PHP/MySQL installation på en Win7 maskine her på kontoret af årsager jeg ikke selv er klar over, som jeg prøvede mod_auth_sspi af på.

Alternativet var at installere en Ubuntu og sætte op, men det tager jo lidt tid... :p

Uden at have tilføjet serveren i trusted intranets, så blev den ved med at spørge efter brugernavn og kodeord på Win7/Apache installationen, men efter at have fået tilføjet den havde jeg bare $_SERVER variablen tilgængelig, hvis man var logget på AD'et.
Avatar billede jakobdo Ekspert
03. februar 2011 - 11:03 #10
Men det kræver stadig windows. Og jeg kører nu engang med på Linux.
Er dog netop i gang med at prøve at smide php på en af vores IIS server.
Så jeg ender nok med at snyde.
Avatar billede repox Seniormester
03. februar 2011 - 11:20 #11
Målet helliger midlerne til tider :)
Avatar billede jakobdo Ekspert
03. februar 2011 - 15:06 #12
Så kom der hul igennem på en IIS med php og mysql.
Hvor er det snyd, at det skal være så nemt på en IIS og så skide besværligt på en apache, for nok næsten af sige umuligt.

Hvis i synes i har krav på point, så smid et svar.
Avatar billede repox Seniormester
03. februar 2011 - 15:24 #13
Jamen, det var da godt det virkede, så :)

Jeg bidrog ikke til en løsning, så jeg springer bare over :)
Avatar billede jakobdo Ekspert
05. februar 2011 - 16:14 #14
Lukker og slukker.
Avatar billede jakobdo Ekspert
14. september 2012 - 13:57 #15
Det ser faktisk ud til dette er løsningen: https://github.com/Legrandin/PyAuthenNTLM2
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester