AD FS i delegacja SAML Token w PHP

Miałem na swoje nieszczęście przyjemność rozbudowywać istniejącą aplikację w PHP o autoryzację SAML. Aplikacja posiadała wcześniej własny system logowania użytkowników, ale z racji na mnogość aplikacji w obrębie jednej firmy zechciano wdrożyć SSO (Single Sign On). Zostało to oparte o AD FS (Active Directory Federation Server) ze względu na posiadanie kont domenowych. Takie rozwiązanie umożliwia scentralizowane zarządzanie użytkownikami. Powstał również panel administracyjny który posiada usługę, zwracającą informację o uprawnieniach zalogowanego użytkownika. Głównym problemem w całym tym modelu biznesowym jest brak wsparcia w języku PHP dla AD FS. W innych językach powstały liczne biblioteki wspierające standard WS-Trust 1.4 i sprowadzają proces logowania i delegacji uprawnień do 10 linijek kodu. W celu realizacji procesu delegacji uprawnień użytkownika przez aplikację, powstała mała klasa, która uzyskuje Security Token z STS’a. Znajdziesz ją w poprzednim poście: AD FS – uzyskiwanie Security Token dla użytkownika. Continue reading “AD FS i delegacja SAML Token w PHP” »

Czytaj więcej

AD FS – uzyskiwanie Security Token dla użytkownika

STS (Security Token Service) jest usługą która dostarcza tokeny zabezpieczające zgodne ze standardami WS-Trust i WS-Federation protocols. Ostatnio musiałem uzyskać token zabezpieczający z Active Directory Federation Services (AD FS) 2.0 właśnie w języku jakim jest PHP.  Istnieje kilka ciekawych i dobrze działających rozwiązań. Jednym z nich jest SimpleSAMLphp (https://simplesamlphp.org/). Poza połączeniem z idP jakim jest AD FS oferuje również możliwość połączenia się z innymi systemami SSO, takmi jak Facebook, oAuth, Google+, InfoCards. Używam SimpleSAMLphp do połączenia z ADFSem, jednak w tym przypadku potrzebowałem uzyskać token bezpośrednio od usługi a nie poprzez redirect i delegację.Więcej o scenariuszach autoryzacji możesz przeczytać np. tutaj: https://msdn.microsoft.com/en-us/library/ee517273.aspx

Continue reading “AD FS – uzyskiwanie Security Token dla użytkownika” »

Czytaj więcej