![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 2.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki problem. Jest sobie skrypt w php oraz uzytkownik zalogowany do domeny windows (Active Directory). Potrzebuje zrobic tak aby skrypt php logowal automatycznie uzytkownika na podstawie jego logina windowsowego. Jesli chodzi o skrypt php do logowania to nie ma problemu, ale nie wiem jak przekazac tego uzytkownika ![]() Efekt ma być taki: uzytkownik loguje sie do windowsa, wchodzi na stronke i tam jest zalogowany automatycznie. Bede wdzieczny za wszelkie pomysly, linki, etc... Pozdrawiam Waldek Ten post edytował nomm 2.08.2006, 08:42:53 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Głowy nie dam, ale ktoś gdzieś ostatnio mi mówił, że się nie da tego zrobić w php - da się podobno w .NET.
![]() -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
temat troche stary, ale moze ktos zna rozwiazanie? Mam ten sam problem do rozwiazania.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Jedyne logiczne rozwiązanie to chyba ActiveX. Nic innego mi nie przychodzi do glowy. Ale i tak to moim zdaniem to jest nie możliwe bo to by bylo równe z lamaniem konta na komputerze. Bo ty musisz wciągnąc jego login i haslo, najzwyklejszy hacking na pliku SAM
![]() -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 11.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pomyslalem sobie ze moge sprawdzac za pomoca SSPI czy uzytkownik jest zalogowany do domeny (sprawdzajac $_SERVER['REMOTE_USER']) ale nie jestem pewien na ile to bedzie bezpieczne?
Wlasciwie $_SERVER['REMOTE_USER'] zwraca mi nazwe uzytkownika i domene, wiec jedyne co potrzebuje, to informacja na temat bezpieczenstwa - czy da sie z zewnatrz podszyc pod takiego uzytkownika? Ten post edytował peter_o 12.10.2007, 22:26:20 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 24.10.2007 Skąd: Gdańsk Ostrzeżenie: (10%) ![]() ![]() |
walczę z tym pytaniem od tygodnia. Jak ktoś coś wie na ten temat bardzo proszę o podzielenie się swoim doświadczeniem, nawet jeżeli ma to być uwaga typu: w php się napewno nie da!
czy tylko w .net da sie to zrobic? ja doszedlem do czegos takiego Kod <HTML> <HEAD> <script LANGUAGE='JavaScript'> <!-- function getusername() { var wshshell=new ActiveXObject("wscript.shell"); var username=wshshell.ExpandEnvironmentStrings("%username%"); alert("Zmienna %USERNAME% ma wartosc:" + username); } //--> </SCRIPT> </HEAD> <BODY> Great :-) <input type="button" value="Odczytaj USERNAME" onclick="getusername()"> </BODY> </HTML> jest to rozwiazanie oparte o ActiveX. wady: 1. Dziala tylko pod IE 2. jak już wcześniej wspomniano można powiedzieć że jest to wirusik i moze byc blokowany przez antyvira i wymaga upierdliwego potwierdzania uruchomienia przez uzytkownika Mam pytanie tutaj od razu: Czy jezeli strona ta bedzie sie znajdowala na serwerze w intranecie to mozna jakos dodac ten serwer do "serwerów zaufanych" (cokolwiek to znaczy ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
w apachu dodajesz
# SSPI LoadModule sspi_auth_module modules/mod_auth_sspi.so # # Configuration for mod_auth_sspi <IfModule mod_auth_sspi.c> <Location /phpbb/> AuthName "sdfaq" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On # SSPIBasicPreferred # SSPIUsernameCase lower require valid-user SSPIDomain twoja.domena.pl </Location> </IfModule> # End of mod_auth_sspi. Oczywiście moduł też wymagany pliczek php: <?php $cred = explode('\\',$_SERVER['REMOTE_USER']); if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)"); list($domain, $userldap) = $cred; echo "You appear to be user <B>$userldap</B><BR/>"; echo "logged into the Windows NT domain <B>$domain</B>"; ?> Ale to już chyba masz. Ja walczę z automatycznym logowaniem do phpbb2. Doszedłem do etapu gdzie podstawiam w formularz logowania domyślną wartość username z domeny. Jednak nie loguje mnie mimo że wyłączam fragment dotyczący sprawdzania hasła (czyli powieni mnie wpuscić z pustym lub jakimkolowiek). Poprostu gdzieś phpbb2 sprawdza jeszcze to hasło po drodze czy ma odpowiednią złożoność (w konfiguracji ten fragment też wyłączyłem). Ten post edytował tomom 26.10.2007, 08:44:41 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 101 Pomógł: 0 Dołączył: 11.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie a co zrobić by wyświoetlić wszystkich użytkowników domeny ?
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ma ktoś może pomysł, jak zrobić bez logowania do systemy, jeśli podłączony do Active Directory. Natomiast logowanie normalne, jęsli nie jest podłączony do AD??
Może ktoś wie jak wyciągnąć nazwę domeny Active Directory, do której podłączony jest dany użytkownik? ![]() w apachu dodajesz # SSPI LoadModule sspi_auth_module modules/mod_auth_sspi.so # # Configuration for mod_auth_sspi <IfModule mod_auth_sspi.c> <Location /phpbb/> AuthName "sdfaq" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On # SSPIBasicPreferred # SSPIUsernameCase lower require valid-user SSPIDomain twoja.domena.pl </Location> </IfModule> # End of mod_auth_sspi. Oczywiście moduł też wymagany pliczek php: <?php $cred = explode('\\',$_SERVER['REMOTE_USER']); if (count($cred) == 1) array_unshift($cred, "(no domain info - perhaps SSPIOmitDomain is On)"); list($domain, $userldap) = $cred; echo "You appear to be user <B>$userldap</B><BR/>"; echo "logged into the Windows NT domain <B>$domain</B>"; ?> Zrobiłem tak jak tomom, ale w ten sposób, jak uruchamiam system, to pojawia mi się okienko do podania loginu i hasla z windows'a i dopiero wtedy uruchamia mi się system (o ile podam poprawne dane) i wtedy mogę się odwołać do domeny i loginu... A chciałbym, żeby nie wyskakiwało okienko do podawania loginu i hasła... A więc doszedłem do tego, jak wyłączyć to okienko do loginu i hasła, które pojawia się przy próbie wejścia do skryptu.php... Choć to jak dla mnie głupie rozwiązanie i działa tylko pod FF. A więc: - w url wpisujemy about:config, wyskoczy ostrzeżenie, że to bardzo ważne opcje FF, enter i jedziemy datelej, - szukamy linijki network.automatic-ntlm-auth.trusted-uris, enter na nią i wpisujemy adresy stron, na których ma nie wyskakiwać okienko login i hasło; strony podajemy po średniku; - restart FF i powinno działać, przynajmniej u mnie działa.... Aczkolwiek szukam innego rozwiązania... Ten post edytował wojna 18.05.2010, 23:33:35 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
1. Z tego co się orientuję to da się to zrobić, ale nie przy pomocy PHP, potrzebny jest program po stronie serwera, który zwraca tablicę zalogowanych użytkowników aktualnie połączonych z tym serwerem (to pewnie da się zrobić na wiele sposobów) , PHP sprawdza (po IP) czy jesteś na tej liście, jeśli tak to loguje Ciebie automatycznie.
2. Do obsługi AD w PHP można wykorzystać: http://pl2.php.net/manual/en/book.ldap.php 3. Jeśli użytkownik loguje się lokalnie to się praktycznie nic nie da zrobić (teoretycznie można zainstalować program, który do nagłówków http doda login czy przekaże te dane na serwer w inny sposó ![]() |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 11.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
A wie może ktoś jak zrobić, żeby przejąć nazwę domeny, np jakimś skryptem, co bym mógł go potem wykorzystać w php?
![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.06.2025 - 20:16 |