Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Automatyczne logowanie do skryptu php na podstawie logina z domeny windows (Active Directory)
nomm
post 2.08.2006, 08:39:12
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 questionmark.gif

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
Go to the top of the page
+Quote Post
Cysiaczek
post 2.08.2006, 16:39:41
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. dry.gif


--------------------
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.
Go to the top of the page
+Quote Post
peter_o
post 11.10.2007, 00:56:27
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.
Go to the top of the page
+Quote Post
misiek172
post 11.10.2007, 06:35:59
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 winksmiley.jpg


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
peter_o
post 12.10.2007, 14:59:34
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
Go to the top of the page
+Quote Post
rudytk
post 24.10.2007, 23:27:05
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 24.10.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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 biggrin.gif ). Innymi slowy czy mozna zrobic taki myk, aby odciazyc uzytkownika od koniecznosci wyrazania zgody na uruchomienie tego skryptu.
Go to the top of the page
+Quote Post
tomom
post 26.10.2007, 08:39:33
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
Go to the top of the page
+Quote Post
wojtekw
post 5.02.2008, 09:10:21
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 ?
Go to the top of the page
+Quote Post
wojna
post 19.05.2010, 23:10:10
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?questionmark.gif

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
Go to the top of the page
+Quote Post
Pilsener
post 20.05.2010, 07:26:02
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ócool.gif
Go to the top of the page
+Quote Post
wojna
post 21.05.2010, 19:17:06
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?questionmark.gif Bo niestety logowanie ma być na podstawie domeny Active Directory, i praktycznie wszystko mam zrobione w projekcie. Loguję się na podstawie nazwy domeny, loginu windowsowego. Login to bez problemów można przejąc np skryptem baschowym. Ale co z domenąquestionmark.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2025 - 20:16