Daher wurde mir mitgeteilt, dass unsere PHP-Anwendung möglicherweise die Authentifizierung mithilfe von ADFS unterstützen muss.
Was ist ADFS für eine Person, die nicht von Microsoft stammt?
Wie unterscheidet es sich von Dingen wie LDAP?
Wie funktioniert es? Welche Art von Informationen würde eine typische Anfrage an einen ADFS-Server enthalten? Ist es sowohl für die Authentifizierung als auch für die Autorisierung ausgelegt?
Sind ADFS-Server normalerweise über das Internet erreichbar (wohingegen AD-Domänencontroller von Unternehmen dies nicht tun würden)?
Ich habe versucht, einige der Technet-Dokumente zu lesen, aber es ist voller Microsoft-Sprache, die nicht sehr hilfreich ist.
Wikipedia ist besser (siehe unten), aber möglicherweise kann ein Teil der ServerFault-Community einige Lücken schließen.
Active Directory Federation Services (ADFS) ist eine von Microsoft entwickelte Softwarekomponente, die auf Windows Server-Betriebssystemen installiert werden kann, um Benutzern den Single Sign-On-Zugriff auf Systeme und Anwendungen über Unternehmensgrenzen hinweg zu ermöglichen. Es verwendet ein anspruchsbasiertes Zugriffssteuerungsautorisierungsmodell, um die Anwendungssicherheit zu gewährleisten und die Verbundidentität zu implementieren.
Anspruchsbasierte Authentifizierung ist der Prozess der Authentifizierung eines Benutzers basierend auf einer Reihe von Ansprüchen bezüglich seiner Identität, die in einem vertrauenswürdigen Token enthalten sind.
In ADFS wird ein Identitätsverbund zwischen zwei Organisationen hergestellt, indem eine Vertrauensstellung zwischen zwei Sicherheitsbereichen hergestellt wird. Ein Verbundserver auf einer Seite (der Kontoseite) authentifiziert den Benutzer über die Standardmittel in Active Directory-Domänendiensten und stellt dann ein Token aus, das eine Reihe von Ansprüchen über den Benutzer enthält, einschließlich seiner Identität. Auf der anderen Seite, der Ressourcenseite, überprüft ein anderer Verbundserver das Token und gibt ein weiteres Token aus, damit die lokalen Server die beanspruchte Identität akzeptieren. Auf diese Weise kann ein System einem Benutzer, der zu einem anderen Sicherheitsbereich gehört, einen kontrollierten Zugriff auf seine Ressourcen oder Dienste gewähren, ohne dass der Benutzer sich direkt beim System authentifizieren muss und ohne dass die beiden Systeme eine Datenbank mit Benutzeridentitäten oder Kennwörtern gemeinsam nutzen.
In der Praxis wird dieser Ansatz vom Benutzer typischerweise wie folgt wahrgenommen:
- Der Benutzer meldet sich bei seinem lokalen PC an (wie es normalerweise der Fall ist, wenn er morgens mit der Arbeit beginnt).
- Der Benutzer muss Informationen auf der Extranet-Website eines Partnerunternehmens abrufen, z. B. Preise oder Produktdetails
- Der Benutzer navigiert zur Extranet-Site des Partnerunternehmens, zum Beispiel: http://example.com
- Für die Partnerwebsite muss jetzt kein Kennwort mehr eingegeben werden. Stattdessen werden die Benutzeranmeldeinformationen mithilfe von AD FS an die Partner-Extranetsite übergeben
- Der Benutzer ist jetzt auf der Partner-Website angemeldet und kann mit der Website "angemeldet" interagieren.
Aus https://en.wikipedia.org/wiki/Active_Directory_Federation_Services
quelle
Antworten:
ADFS ist die Microsoft-Lösung für Single Sign On und webbasierte Authentifizierung.
Es wird hauptsächlich verwendet, um einen einzelnen Satz von Anmeldeinformationen bereitzustellen, mit denen auf eine Vielzahl von Websites zugegriffen werden kann, die nicht unbedingt in derselben Domäne gehostet werden.
LDAP:
mod_authnz_ldap
.ADFS:
Siehe auch diese Antwort zum Thema.
Es funktioniert, indem ein einzelner Standort (Standort A) die ADFS / ADFS-Proxyserver hostet, die Zugriff auf die Anmeldeinformationen haben (normalerweise durch Kommunikation mit einem Active Directory-Domänencontroller). Anschließend wird eine Vertrauensstellung zwischen anderen Standorten (Standort B und C) eingerichtet, für die eine Authentifizierung über ADFS erforderlich ist.
Wenn ein Benutzer versucht, in seinem Browser auf Site B zuzugreifen, leitet die Site den Benutzer auf die ADFS-Proxy-Website (Site A) weiter, auf der er seinen Benutzernamen und sein Kennwort abfragt, diese authentifiziert, eine Reihe von Cookies zurückgibt, um sich an sie zu erinnern, und sie weiterleitet Zurück zur Site B, zusammen mit einem Zugriffstoken.
Wenn der Benutzer dann versucht, Site C zu besuchen, wird er auch zur Authentifizierung von der ADFS-Proxy-Website zu Site A umgeleitet. Wenn die richtigen Cookies vorhanden sind, muss der Benutzer sein Kennwort nicht erneut eingeben, sondern wird sofort mit einem Token zurück zu Site C geleitet.
Das ADFS kann zu Autorisierungszwecken mit bestimmten Ansprüchen (oder Berechtigungen) für den Benutzer konfiguriert werden. Es kann also beide Rollen übernehmen. (Beachten Sie den Unterschied zwischen Authentifizierung und Autorisierung .)
Einige Leute bevorzugen es, es nicht für die Autorisierung zu verwenden, sondern behalten die Berechtigungsverwaltung auf der Website eines Drittanbieters bei. Der offensichtliche Nachteil ist, dass sowohl Standort A als auch Standort B die Benutzerkonten überwachen müssen, während in dem Szenario, in dem ADFS beide verarbeitet, nur das ADFS die Benutzer berücksichtigen muss.
Ja, fast immer. ADFS basiert auf der Vorstellung, dass es hauptsächlich für die Website-Authentifizierung verwendet wird. Und ist rund um IIS aufgebaut.
Die ADFS-Proxy-Site ist diejenige, auf die normalerweise über das Internet zugegriffen werden kann. Das ADFS selbst ist dies jedoch nicht. Das ADFS ist in der Regel ein vom ADFS-Proxy getrennter Server.
Server, der eine Verknüpfung zu den Anmeldeinformationen herstellt und über die Anspruchskonfiguration sowie die Vertrauensstellungen verfügt. Im Allgemeinen nicht öffentlich zugänglich.
, auf dem die IIS-Instanz mit den Anmeldeseiten für die Websites gehostet wird, für die eine Authentifizierung erforderlich ist. Kommuniziert zurück zum ADFS, wenn eine Authentifizierung erforderlich ist. Allgemein öffentlich zugänglich.
quelle