Powiedziano mi, że nasza aplikacja PHP może wymagać uwierzytelnienia przy użyciu ADFS.
Dla osób niebędących Microsoftem, czym jest ADFS?
Czym różni się od takich rzeczy jak LDAP?
Jak to działa? Jakie informacje byłyby zawarte w typowym żądaniu skierowanym do serwera ADFS? Czy jest przeznaczony zarówno do uwierzytelniania, jak i autoryzacji?
Czy serwery ADFS są zazwyczaj dostępne z Internetu (podczas gdy korporacyjne kontrolery domen AD nie byłyby dostępne)?
Próbowałem przeczytać niektóre dokumenty Technet, ale jest pełen Microsoft Speak, który nie jest niezwykle pomocny.
Wikipedia jest lepsza (patrz poniżej), ale być może część społeczności ServerFault może wypełnić niektóre luki.
Usługi federacyjne w usłudze Active Directory (ADFS) to komponent oprogramowania opracowany przez firmę Microsoft, który można zainstalować w systemach operacyjnych Windows Server, aby zapewnić użytkownikom jednokrotny dostęp do systemów i aplikacji znajdujących się poza granicami organizacji. Wykorzystuje model autoryzacji kontroli dostępu oparty na oświadczeniach, aby zachować bezpieczeństwo aplikacji i wdrożyć tożsamość federacyjną.
Uwierzytelnianie oparte na oświadczeniach to proces uwierzytelniania użytkownika na podstawie zestawu oświadczeń dotyczących jego tożsamości zawartych w zaufanym tokenie.
W programie ADFS federacja tożsamości jest ustanawiana między dwiema organizacjami poprzez ustanowienie zaufania między dwiema dziedzinami bezpieczeństwa. Serwer federacyjny z jednej strony (strona Konta) uwierzytelnia użytkownika za pomocą standardowych środków w Usługach domenowych w usłudze Active Directory, a następnie wydaje token zawierający szereg oświadczeń o użytkowniku, w tym jego tożsamość. Z drugiej strony, po stronie zasobów, inny serwer federacyjny sprawdza token i wydaje inny token serwerom lokalnym w celu zaakceptowania deklarowanej tożsamości. Pozwala to systemowi zapewnić kontrolowany dostęp do swoich zasobów lub usług użytkownikowi, który należy do innej dziedziny bezpieczeństwa, bez konieczności uwierzytelniania użytkownika bezpośrednio w systemie i bez dzielenia przez oba systemy bazy danych tożsamości użytkowników lub haseł.
W praktyce takie podejście jest zazwyczaj postrzegane przez użytkownika w następujący sposób:
- Użytkownik loguje się na lokalnym komputerze (tak jak zwykle, gdy rozpoczyna pracę rano)
- Użytkownik musi uzyskać informacje na stronie ekstranetu firmy partnerskiej - na przykład, aby uzyskać informacje o cenach lub produkcie
- Użytkownik przechodzi do witryny ekstranetowej firmy partnerskiej - na przykład: http://example.com
- Witryna partnera nie wymaga teraz wpisywania hasła - zamiast tego poświadczenia użytkownika są przekazywane do witryny ekstranetu partnera za pomocą usług AD FS
- Użytkownik jest teraz zalogowany na stronie partnera i może wchodzić w interakcje ze stroną „zalogowany”
From https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
źródło
Odpowiedzi:
ADFS to rozwiązanie firmy Microsoft do jednokrotnego logowania i uwierzytelniania internetowego.
Służy przede wszystkim do zapewnienia jednego zestawu poświadczeń, które umożliwiają dostęp do różnych witryn niekoniecznie hostowanych w tej samej domenie.
LDAP:
mod_authnz_ldap
.ADFS:
Zobacz także tę odpowiedź na ten temat.
Działa poprzez posiadanie pojedynczej lokacji (lokacja A), która obsługuje serwery proxy ADFS / ADFS, która ma dostęp do poświadczeń (zwykle poprzez komunikację z kontrolerem domeny Active Directory). Następnie uzyskuje się zaufanie między innymi stronami (strony B i C), które wymagają uwierzytelnienia za pośrednictwem ADFS.
Gdy użytkownik próbuje uzyskać dostęp do strony B w swojej przeglądarce, strona przekierowuje użytkownika do strony internetowej serwera proxy ADFS (strona A), która pyta o nazwę użytkownika i hasło, uwierzytelnia je, zwraca zestaw plików cookie do zapamiętania i przekierowuje je powrót do strony B wraz z tokenem dostępu.
Jeśli użytkownik następnie spróbuje odwiedzić witrynę C, zostanie również przekierowany do witryny A w celu uwierzytelnienia ze strony internetowej serwera proxy ADFS. Jeśli istnieją odpowiednie pliki cookie, użytkownik nie będzie musiał ponownie wpisywać hasła, ale zostanie natychmiast przekierowany z powrotem do witryny C za pomocą tokena.
W systemie ADFS można skonfigurować określone oświadczenia (lub uprawnienia) dla użytkownika w celu autoryzacji. Może więc służyć obu rolom. (Zwróć uwagę na różnicę między uwierzytelnianiem a autoryzacją ).
Niektóre osoby wolą nie używać go do autoryzacji, ale zamiast tego zachowują zarządzanie uprawnieniami w witrynie internetowej innej firmy. Oczywistym minusem jest to, że obie witryny A i B muszą śledzić konta użytkowników, podczas gdy w scenariuszu, w którym ADFS obsługuje oba, tylko ADFS musi być świadomy użytkowników.
Tak, prawie zawsze. ADFS opiera się na założeniu, że będzie on używany przede wszystkim do uwierzytelniania witryn internetowych. I jest zbudowany wokół IIS.
Witryna serwera proxy ADFS jest zwykle dostępna z Internetu. Jednak sam ADFS nie jest. ADFS jest zasadniczo innym serwerem niż ADFS-proxy.
który łączy się z poświadczeniami i ma konfigurację oświadczeń, a także relacje zaufania. Ogólnie niedostępne publicznie.
który obsługuje instancję IIS, która ma strony logowania do witryn wymagających uwierzytelnienia. Komunikuje się z powrotem do ADFS, gdy wymaga uwierzytelnienia. Ogólnie dostępny publicznie.
źródło