Mir wurde gesagt, dass unsere PHP-Anwendung möglicherweise die Authentifizierung über ADFS unterstützen muss.
Das ist eine gute Idee;
Was ist ADFS für einen Nicht-Microsoftianer?
Wie unterscheidet es sich von Dingen wie LDAP?
Wie funktioniert es? Welche Art von Informationen sind in einer typischen Anfrage an einen ADFS-Server enthalten? Ist es sowohl für die Authentifizierung als auch für die Autorisierung konzipiert?
Sind ADFS-Server in der Regel über das Internet zugänglich (während AD-Domänencontroller von Unternehmen dies nicht sind)?
Ich habe versucht, einige der Technet-Dokumente zu lesen, aber es ist voll von Microsoft-Fachsprache, die nicht sehr hilfreich ist.
Wikipedia ist besser (siehe unten), aber vielleicht kann jemand aus der ServerFault-Community einige der Lücken füllen.
Active Directory Federation Services (ADFS)** ist eine von Microsoft entwickelte Softwarekomponente, die auf Windows Server-Betriebssystemen installiert werden kann, um Benutzern einen einmaligen Anmeldezugriff auf Systeme und Anwendungen zu ermöglichen, die sich über Unternehmensgrenzen hinweg befinden. Sie verwendet ein auf Ansprüchen basierendes Zugriffskontroll-Autorisierungsmodell, um die Anwendungssicherheit zu gewährleisten und eine föderierte Identität zu implementieren.
Bei der behauptungsbasierten Authentifizierung wird ein Benutzer auf der Grundlage einer Reihe von Behauptungen über seine Identität authentifiziert, die in einem vertrauenswürdigen Token enthalten sind.
In ADFS wird ein Identitätsverbund zwischen zwei Organisationen eingerichtet, indem Vertrauen zwischen zwei Sicherheitsbereichen aufgebaut wird. Ein Föderationsserver auf der einen Seite (die Kontenseite) authentifiziert den Benutzer mit den Standardmitteln der Active Directory-Domänendienste und gibt dann ein Token aus, das eine Reihe von Aussagen über den Benutzer, einschließlich seiner Identität, enthält. Auf der anderen Seite, der Ressourcenseite, validiert ein anderer Verbundserver das Token und gibt ein weiteres Token für die lokalen Server aus, um die behauptete Identität zu akzeptieren. Auf diese Weise kann ein System einem Benutzer, der einem anderen Sicherheitsbereich angehört, kontrollierten Zugang zu seinen Ressourcen oder Diensten gewähren, ohne dass sich der Benutzer direkt beim System authentifizieren muss und ohne dass die beiden Systeme eine Datenbank mit Benutzeridentitäten oder Passwörtern gemeinsam nutzen.
In der Praxis wird dieser Ansatz vom Benutzer in der Regel wie folgt wahrgenommen:
Von https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
Was ist ADFS für einen Nicht-Microsoft-Nutzer?
ADFS ist die Lösung von Microsoft für Single Sign On und webbasierte Authentifizierung.
Sie wird in erster Linie verwendet, um einen einzigen Satz von Anmeldedaten bereitzustellen, mit denen auf eine Vielzahl von Websites zugegriffen werden kann, die nicht unbedingt in derselben Domäne gehostet werden.
Worin besteht der Unterschied zu LDAP?
LDAP:
mod_authnz_ldap
in LDAP übersetzt werden.ADFS:
Siehe auch diese Antwort zu diesem Thema.
Wie funktioniert es? Welche Art von Informationen sind in einer typischen Anfrage an einen ADFS-Server enthalten? Ist es sowohl für die Authentifizierung als auch für die Autorisierung gedacht?
Es funktioniert mit einem einzigen Standort (Standort A), der die ADFS/ADFS-Proxyserver hostet und Zugang zu den Anmeldeinformationen hat (normalerweise durch Kommunikation mit einem Active Directory Domain Controller). Es wird dann eine Vertrauensstellung zwischen anderen Standorten (Standort B & C) hergestellt, die eine Authentifizierung über das ADFS erfordern.
Wenn ein Benutzer versucht, in seinem Browser auf die Website B zuzugreifen, leitet die Website den Benutzer an die ADFS-Proxy-Website (Website A) weiter, die ihn nach seinem Benutzernamen und seinem Kennwort fragt, ihn authentifiziert, eine Reihe von Cookies zur Erinnerung an ihn zurückgibt und ihn zusammen mit einem Zugriffstoken zurück an die Website B weiterleitet.
Wenn der Benutzer dann versucht, die Website C zu besuchen, wird er zur Authentifizierung von der ADFS-Proxy-Website ebenfalls an die Website A weitergeleitet. Wenn die richtigen Cookies vorhanden sind, muss der Benutzer sein Kennwort nicht erneut eingeben, sondern wird sofort mit einem Token zur Website C zurückgeleitet.
Der ADFS kann mit spezifischen Ansprüchen (oder Berechtigungen) für den Benutzer zu Autorisierungszwecken konfiguriert werden. Es kann also beide Funktionen erfüllen. (Beachten Sie den Unterschied zwischen Authentifizierung und Autorisierung).
Manche Leute ziehen es vor, sie nicht für die Autorisierung zu verwenden, sondern die Verwaltung der Berechtigungen auf der Website des Drittanbieters zu belassen. Der offensichtliche Nachteil ist, dass sowohl Site A als auch Site B die Benutzerkonten im Auge behalten müssen, während in dem Szenario, in dem ADFS beide verwaltet, nur das ADFS die Benutzer kennen muss.
Sind ADFS-Server in der Regel über das Internet zugänglich (während AD-Domänencontroller von Unternehmen dies nicht sind)?
Ja, fast immer. ADFS basiert auf der Vorstellung, dass es in erster Linie für die Authentifizierung von Websites verwendet wird. Und ist um IIS herum aufgebaut.
Die ADFS-Proxy-Site ist diejenige, die normalerweise vom Internet aus zugänglich ist. Der ADFS selbst ist es jedoch nicht. Der ADFS ist im Allgemeinen ein vom ADFS-Proxy getrennter Server.