FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Mycket flitig postare
|
Hej
Jag ska göra ett intranät (alla som surfar tillhör samma lokala nätverk) där webbservern ska kunna se vilken windowsanvändare som besökaren är inloggad som. Jag har googlat runt lite och sett en del lösningar som räcker halvvägs (t.ex. LDAP-funktionerna i php), men det ser inte ut att räcka hela vägen. Hur som helst. Webbservern får tag i datornamn och IP för den surfande datorn. Det betyder att jag behöver ett hjälpmedel för att få fram inloggad användare hos en angiven IP eller ett datornamn (IP to USERNAME). Jag försöker undvika att blanda in certifikat, javaapplets, active X och konstiga webbläsarinställningar. Med andra ord vill jag att allt är fullkomligt transparent. Man vill inte behöva preparera varje dator med några inställningar, utan webbservern ska kunna gräva fram infon själv. Antingen via någon central enhet (AD) eller genom att anropa den surfande datorn i bakgrunden. Jag förväntar mig att man mha IP kan få fram vilken user som är inloggad på den datorn. Om inte PHP kan ta fram det så kanske det genom en prompt går att få fram infon med några anrop, som jag kan göra genom exec(). Om inte det heller går så kan jag koda ihop något i C++ som kan gräva fram informationen (det måste ju bara gå!) och denna fil kan då returnera en text, som jag får fram när jag anropar den via exec(). Jag kan få inloggningar till nätverkets AD etc, så den infon går att komma åt, däremot kan man vad jag förstår inte köra IP->Username-sökning via detta. Nån som har testat att ta fram en bra lösning? Tack / Tobbe |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Mycket flitig postare
|
Om servern är en IIS är det väl bara att slå på "integrated windows authentication" så får du user name i en servervariabel (LOGON_USER eller liknande). Eller är det en icke-win-burk?
Att göra ett uppslag via AD är väl ingen höjdare. För även om det är möjligt så kan ju flera personer vara inloggade på samma maskin. Knappast speciellt säkert... |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Mycket flitig postare
|
Förlåt, glömde ange:
Apacheserver på Windowsmaskin. Fler ideer? |
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Bara ett inlägg till!
|
Jag tror faktiskt inte du kan få fram användarnamn på den inloggade profilen utan att kompromissa med säkerheten på klienterna eller installera tredjepart programvara.
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Spontant så känns det som om PHP egentligen inte borde "behövas" så att säga. På samma sätt som IIS:en kan köra integrated win-logon tycker jag att apache borde konfigureras att köra BasicAuth med t.ex. LDAP mot godtycklig LDAP server. Och ett AD kan väl fungera som LDAP server och då är du ju hemma.
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Lite svårt med sådana här lösningar om du vill att allting skall vara transparent, du måste ha en inloggningsfunktion (likt. eg0master), sedan efter det är det inga problem att lägga allting i en Cookie som varar xxx antal år.
Problemet som kan uppstå med Cookie hanteringen är ju om flera personer delar dator och inte har egna användare som används. |
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Mycket flitig postare
|
Det känns som att den här modulen gör det du behöver: http://httpd.apache.org/docs/2.0/mod/mod_a..._auth_ldap.html
Första träffen på Google "apache ldap" ![]() Kör med vanlig HTTP Basic auth, med apache ska du kunna läsa PHP_AUTH_USER och PHP_AUTH_PW i _SERVER för att få fram användarnamnen. Användaren måste logga in igen, men använder samma användarnamn och lösenord som till domänen. Känns som en bra tradeoff? |
|||
![]() |
![]() |
![]() |
#8 | |||
|
||||
Mycket flitig postare
|
Tack för infon!
Men jag kommer inte nöja mig förrän inloggningen mot servern blir automatisk när man är inloggad mot domänen. Vi behöver inte oroa oss för problem med om folk inte är inloggade. Det ska också förtydligas att jag mha php kan ansluta mot AD mha lpad-funktionerna. Men jag vet inte hur jag ska få ut någon vettig information om det. Är det verkligen helt omöjligt att få fram vilken inloggad windowsanvändare som besöker sidan? Jag kan alltså göra en applikation i c++ eller c# som gräver fram infon över nätet (om det är lättare att göra så än att webbservern gör det), sen får webbservern anropa denna fil för att få datan serverad... Men... Det är inte förstahandslösningen... Stort tack till er som hjälper till att klura. ![]() |
|||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Mycket flitig postare
|
Hm... Är inte det enklaste trots allt att gå över till IIS istället för Apache? Om du ändå har en windowsburk och det är ett intranät så innebär det knappast någon signifikant kostnad (om ens någon) att köra IIS på maskinen. Och dessutom tjänar kunden massor av pengar totalt sett eftersom du inte behöver lösa single-sign-on problematiken. För som sagt, jag tror det är mycket svårt. Och även om det är möjligt kan som sagt flera användare vara inloggade på samma maskin och då blir det ju ett säkerhetshål. Då kan du ju lika gärna ha en statisk-lista sopm mappar användarnas IP/hostnamn mot en viss användare...
Jag tror IIS är den klart smartaste lösningen för ditt problem. |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Mycket flitig postare
|
Ja, du kanske har rätt, men jag kommer låta det dröja ett par veckor innan jag ska testa detta, så jag är öppen för att hitta en Apachelösning.
Sen hoppas jag att IIS har riktigt bra alternativ till allt vad htaccess och virtual hosts heter, annars blir jag ledsen i ögat. Men jag förutsätter att allt värt att ha finns. Enligt kunden själv så kan inte flera användare vara inloggade på samma maskin enligt deras domäninställningar. En inloggning loggar ut ev. befintliga användare säger dom. Men ändå så kan det vara kul för framtiden att hitta en lösning som fungerar i Apache. Men jag tror/hoppas fortfarande att Windows på något sätt kan mappa IP->USER på något sätt. Kunden håller själv på att kolla upp detta hos sina MS-ninjor. |
|||
![]() |
![]() |
Svara |
|
|