Frage Was ist ADFS (Active Directory-Verbunddienste)?


Mir wurde gesagt, dass unsere PHP-Anwendung die Authentifizierung mit ADFS unterstützen muss.

  1. Was ist ADFS für eine Nicht-Microsoft-Person?

  2. Wie unterscheidet es sich von Dingen wie LDAP?

  3. Wie funktioniert es? Welche Art von Informationen würden in einer typischen Anfrage an einen ADFS-Server enthalten sein? Ist es für Authentifizierung und Autorisierung ausgelegt?

  4. Sind ADFS-Server in der Regel vom Internet aus erreichbar (während dies bei AD-Domänencontrollern nicht der Fall wäre)?


65
2017-07-27 03:04


Ursprung


ich fand diese  Artikel und Dieses Video hilfreich bei der Bereitstellung eines Überblicks. - Simon East
Reaces lieferte eine ausgezeichnete Antwort. Die einzige zusätzliche Information, die ich hinzufügen würde, ist, dass es sich lohnt zu verstehen WS-Föderationsprotokoll und Sicherheitszusatzauszeichnungssprache (SAML) Welches sind die Standards, die ADFS implementiert? Hier sind ein paar Videos, die ich nützlich fand, um diese (ziemlich komplexen) Konzepte zu verstehen. Leider enthalten sie so viel Material, dass ich es hier nicht aufnehmen kann. ! [Miniaturansicht des Videos  SAML und Single Sign-On verstehen 101 auf Youtube](youtube.com/watch?v=gUmMcecHN9s) [! [Videominiaturbild] (http - Simon East
Ich hatte auch Schwierigkeiten, ADFS zu verstehen. Ich brauchte von Anfang an eine Erklärung (ich bin keine AD-Person). Dieses Video, das in der Serie enthalten ist, die in den Kommentaren erwähnt wird, war sehr hilfreich für mich. Hier sollte eine neue Person ohne Erfahrung mit ADFS beginnen und dann mit den restlichen Videos der Serie fortfahren. Ich hoffe, es hilft. youtube.com/ ... - Mauricio Zaragoza
Sorry Leute, ein Moderator hat meine Antwort mit den hilfreichen Videos gelöscht und oben einen Kommentar gemacht, aber das ist jetzt kaputt. Frustrierend. - Simon East


Antworten:


Was ist ADFS für eine Nicht-Microsoft-Person?

ADFS ist die Lösung von Microsoft für Single Sign On und webbasierte Authentifizierung.

Es wird hauptsächlich verwendet, um einen einzelnen Satz von Anmeldeinformationen bereitzustellen, die auf eine Vielzahl von Websites zugreifen können, die nicht unbedingt in derselben Domäne gehostet werden.

Wie unterscheidet es sich von Dingen wie LDAP?

LDAP:

  • Kommuniziert über TCP / UDP an Port 389 (oder Port 636 für LDAPS)
  • Enthält Befehle zum Suchen / Abrufen / Hinzufügen / Löschen / Ändern von Benutzern, Profilen und anderen Verzeichniseinträgen
  • Können nicht direkt über einen Webbrowser durchgeführt werden, jedoch kann die HTTP-Authentifizierung mit Dingen wie Apache in LDAP übersetzt werden mod_authnz_ldap.
  • Wenn für die Website-Authentifizierung von Drittanbietern verwendet, müssen Nutzername und Passwort dem Drittanbieter zur Verfügung gestellt werden, was für die Sicherheit nicht ideal ist.
  • Ist eher ein offener Standard und hat zahlreiche Linux-Implementierungen.

ADFS:

  • Besser für das Web entwickelt, da es über Standard-HTTPS kommuniziert
  • Folgt einem sichereren Prozess, der (jedoch nicht exakt) dem von OAuth ähnelt, wobei der ursprüngliche Benutzername / das ursprüngliche Passwort direkt dem ADFS-Server der Organisation (oder einem Proxy, aber nicht der Drittanbieter), der, wenn er gültig ist, ein eindeutiges Token zurückgibt, das für den Zugriff auf die Website eines Drittanbieters verwendet werden kann.
  • Obwohl es einige offene Standards (HTTPS, SAML usw.) verwendet, ist es Microsoft-spezifisch und erfordert Internetinformationsdienste (IIS), die nur auf Windows-Servern ausgeführt werden.

Siehe auch diese Antwort zum Thema.

Wie funktioniert es? Welche Art von Informationen würden in einer typischen Anfrage an einen ADFS-Server enthalten sein? Ist es für Authentifizierung und Autorisierung ausgelegt?

Es funktioniert mit einer einzigen Site (Site A), auf der die ADFS / ADFS-Proxyserver gehostet werden, die Zugriff auf die Anmeldeinformationen haben (normalerweise durch Kommunikation mit einem Active Directory-Domänencontroller). Es erhält dann eine Vertrauensstellung zwischen anderen Sites (Sites B & C), die eine Authentifizierung über das ADFS erfordern.

Wenn ein Benutzer versucht, in seinem Browser auf die Site B zuzugreifen, leitet die Site den Benutzer zur ADFS-Proxy-Website (Site A) um, die nach Benutzername und Passwort fragt, sie authentifiziert, eine Reihe von Cookies zurückgibt und sie weiterleitet Zurück zur Seite B, zusammen mit einem Zugangstoken.

Wenn der Benutzer dann versucht, die Site C zu besuchen, wird er auch zur Authentifizierung von der ADFS-Proxy-Website zur Site A weitergeleitet. Wenn die richtigen Cookies vorhanden sind, muss der Benutzer sein Passwort nicht erneut eingeben, sondern wird sofort mit einem Token an die Site C weitergeleitet.

Das ADFS kann mit bestimmten Ansprüchen (oder Berechtigungen) für den Benutzer zu Autorisierungszwecken konfiguriert werden. So kann es beiden Rollen dienen. (Beachten Sie das Unterschied zwischen Authentifizierung und Autorisierung.)

Einige Nutzer bevorzugen es, sie nicht zur Autorisierung zu verwenden, sondern behalten stattdessen die Berechtigungsverwaltung auf der Website des Drittanbieters. Der offensichtliche Nachteil besteht darin, dass sowohl Standort A als auch B Benutzerkonten verfolgen müssen, während in dem Szenario, in dem AD FS beides verarbeitet, nur der AD FS die Benutzer kennen muss.

Sind ADFS-Server in der Regel vom Internet aus erreichbar (während dies bei AD-Domänencontrollern nicht der Fall wäre)?

Ja, fast immer. ADFS basiert auf der Annahme, dass es hauptsächlich für die Website-Authentifizierung verwendet wird. Und ist um IIS herum aufgebaut.

Die ADFS-Proxy-Site ist diejenige, auf die normalerweise über das Internet zugegriffen werden kann. Allerdings ist das ADFS selbst nicht. Der ADFS ist im Allgemeinen ein separater Server vom ADFS-Proxy.

  • ADFS-Server
    Server, der mit den Anmeldeinformationen verknüpft ist und über die Anspruchskonfiguration sowie die Vertrauensstellungen verfügt. Generell nicht öffentlich zugänglich.
  • ADFS-Proxyserver
    Server, der die IIS-Instanz mit den Anmeldeseiten für die Websites enthält, für die eine Authentifizierung erforderlich ist. Kommuniziert zurück zum ADFS, wenn eine Authentifizierung erforderlich ist. Generell öffentlich zugänglich.

82
2017-07-27 07:26



Zu klären: ADFS-Proxyserver muss auf IIS (Windows) laufen. Client-Websites (B & C) können jedoch alle Betriebssysteme und Webserver einschließlich Linux ausführen. - Olli
Sehr hilfreich, habe gerade ein Konto erstellt, um dies zu überprüfen. - Juan