Cześć, mamy w pracy baaardzo stary system z wieloma błędami i w związku z tym, że coś tam długie w php zostałem poproszony czy nie dał bym rady tego napisać lepiej i od nowa. Generalnie sama kwestia aplikacji jest bardzo prosta i nie widze w niej przeszkód, natomiast jest coś czego wczoraj nie byłem w stanie wygooglować przez cały dzień. Możecie mnie zwyzywać, ale nic nie znalazłem co bym zrozumiał i potrafił zaimplementować.
Chodzi o logowanie do tej aplikacji poprzez Active Directory (streszczenie problemu na końcu).
To co mi się udało do tej pory osiągnąć to zalogowac się do tego serwera testowego http://www.forumsys.com/en/tutorials/integration-how-to/ldap/online-ldap-test-server/ za pomocą phpowych funkcji (http://stackoverflow.com/questions/171519/authenticating-in-php-using-ldap-through-active-directory), oraz dla testów pobawiłem się później również https://github.com/Adldap2/Adldap2-Laravel .
W obu przypadkach połączyłęm się z tym serwerem pomślnie, jednak z tego co rozumiem jest to logowanie za pomocą samego ldapu, a nie Active Directory.
Dodatkowo wymaga to wszystko podania nazwy użytkownika i hasła, a ja chciałby, żeby logowanie odbywało się bez konieczności podawania danych (z tego co przeczytałem jest to możliwe tylko na przeglądarkach IE, a w razie korzystania z innej, żeby wyskoczył formularz - akurat ten fragment logiki sam ogarnę). Gdzieś czytałem, że w $_SERVER['USER_LOGON'] powinienem znaleźć nazwę użytkownika, jednak u siebie w środowisku testowym nie widzę nic takiego (nawet wyświetlając całą zawartość $_SERVER), zgaduję że to jest akurat kwestia ustawień zabezpieczeń i tego, że testuje całość jeszcze na zewnętrznym serwerze. Pozostaje jeszcze kwestia hasła wiec domyślam się taka autentykacja musi odbywać się bez jego udziału i w jakiś inny sposób.
Takie coś istnieje na pewno ponieważ logujemy się w ten sposób do innych aplikacji intranetowych w pracy, natomiast wszystko napisane jest dawno temu. Niestety nie mam dostępu do kodu, jak też nie wiem jak ma się do dzisiejszych standardów, plus działa tylko na IE w max wersji 8 czy tam 9 więc nie wiem na ile mógłym nawet się na tym wzorować.
Jeszcze wczoraj rano nie miałem zielonego pojęcia o ldapie i AD, a cały dzień w Google chyba więcej mi pokręcił w głowie niż pomógł. Nie wykluczam więc błędu w moim zrozumieniu całej koncepcji ldapu i ad.
Reasumując z czym mam problem:
Jak mogę zaimplementować samo logowanie i autentykację poprzez Active Directory do aplikacji napisanej w PHP ( z użyciem Laravel) bez wpisywania danych w formularze i co do tego potrzebuję (jakieś dodatkowe progoramy? pluginy? serwery?). Najchętniej oczywiście zobaczyłbym jakiś przykładowy kod, albo łopatologicznie wypunktowane co i za pomocą czego mógłbym zrobić, albo co przeczytać.
Sesje i inne pierdoły dookoła logowania zrobię, problem tylko i wyłącznie w tym jak przekazać dane logowania z klienta na server php i jak te dane zweryfikować.