Vraag Wat is ADFS (Active Directory Federation Services)?


Dus ik heb gehoord dat onze PHP-applicatie mogelijk de authenticatie moet ondersteunen met behulp van ADFS.

  1. Voor een niet-Microsoft-persoon, wat is ADFS?

  2. Hoe verschilt dit van dingen als LDAP?

  3. Hoe werkt het? Welke informatie zou worden opgenomen in een typisch verzoek aan een ADFS-server? Is het ontworpen voor zowel authenticatie als autorisatie?

  4. Zijn ADFS-servers meestal toegankelijk vanaf internet (terwijl AD-domeincontrollers voor bedrijven dat niet zouden zijn)?


65
2017-07-27 03:04


oorsprong


ik vond deze  artikelen en deze video handig bij het geven van een overzicht. - Simon East
Reaces leverde een uitstekend antwoord op. De enige aanvullende informatie die ik zou toevoegen, is dat het misschien loont om het te begrijpen WS-Federation-protocol en Security Assertion Markup Language (SAML) welke zijn de standaarden die ADFS implementeert. Hier zijn een paar video's die ik nuttig vond om deze (vrij complexe) concepten te begrijpen. Helaas bevatten ze zoveel materiaal dat ik het hier niet kan opnemen. ! [Videominiatuur  SAML en eenmalige aanmelding begrijpen 101 op Youtube](youtube.com/watch?v=gUmMcecHN9s) [! [Videominiatuur] (http - Simon East
Ik had ook moeite om ADFS te begrijpen. Ik had vanaf het allereerste begin een uitleg nodig (ik ben geen AD-persoon). Deze video die is opgenomen in de serie die in de opmerkingen hier wordt vermeld, was erg nuttig voor mij. Dit is waar elke nieuwe, nulbelevende persoon met ADFS moet beginnen en vervolgens doorgaan met de rest van de video's in de serie. Ik hoop dat het helpt. youtube.com/... - Mauricio Zaragoza
Sorry mensen, een moderator heeft mijn antwoord verwijderd met de behulpzame video's en heeft er een opmerking van gemaakt, maar die is nu verbroken. Frustrerend. - Simon East


antwoorden:


Voor een niet-Microsoft-persoon, wat is ADFS?

ADFS is de oplossing van Microsoft voor Single Sign On en webgebaseerde authenticatie.

Het wordt voornamelijk gebruikt om een ​​enkele set referenties te bieden die toegang hebben tot verschillende sites die niet noodzakelijk binnen hetzelfde domein worden gehost.

Hoe verschilt dit van dingen als LDAP?

LDAP:

  • Communiceert met TCP / UDP op poort 389 (of poort 636 voor LDAPS)
  • Bevat opdrachten voor zoeken / opvragen / toevoegen / verwijderen / wijzigen van gebruikers, profielen en andere directory-vermeldingen
  • Kan niet direct worden uitgevoerd door een webbrowser, maar HTTP-verificatie kan worden vertaald naar LDAP met behulp van dingen zoals Apache's mod_authnz_ldap.
  • Bij gebruik voor websiteauthenticatie van derden moeten de gebruikersnaam en het wachtwoord aan de externe partij worden verstrekt, wat niet ideaal is voor de beveiliging.
  • Is meer een open standaard en heeft talloze Linux-implementaties.

ADFS:

  • Beter ontworpen voor het web omdat het communiceert via standaard HTTPS
  • Volgt een veiliger proces vergelijkbaar (maar niet exact) met OAuth waarbij de oorspronkelijke gebruikersnaam / wachtwoord rechtstreeks wordt verstrekt aan de ADFS-server van de organisatie (of een proxy, maar niet de derde partij), die, indien geldig, een uniek token retourneert dat kan worden gebruikt om toegang te krijgen tot een website van een derde partij.
  • Hoewel het wel gebruik maakt van een aantal open standaarden (HTTPS, SAML etc.), is het Microsoft-specifiek en vereist Internet Information Services (IIS) dat alleen op Windows-servers draait.

Zie ook dit antwoord over het onderwerp.

Hoe werkt het? Welke informatie zou worden opgenomen in een typisch verzoek aan een ADFS-server? Is het ontworpen voor zowel authenticatie als autorisatie?

Het werkt door een enkele site (site A) te hebben die de ADFS / ADFS-proxyservers host, die toegang heeft tot de referenties (meestal door te communiceren met een Active Directory-domeincontroller). Het krijgt dan een vertrouwensrelatie tussen andere sites (sites B & C) die moeten worden geverifieerd via de ADFS.

Wanneer een gebruiker toegang probeert te krijgen tot site B in zijn browser, leidt de site de gebruiker om naar de ADFS-proxywebsite (site A) die om hun gebruikersnaam en wachtwoord vraagt, deze verifieert, een set cookies retourneert om ze te onthouden en omleidt terug naar de site B, samen met een toegangstoken.

Als de gebruiker vervolgens probeert site C te bezoeken, worden deze ook doorgestuurd naar site A voor verificatie van de ADFS-proxy-website. Als de juiste cookies bestaan, hoeft de gebruiker zijn wachtwoord niet opnieuw in te voeren, maar wordt hij onmiddellijk terugverwezen naar site C met een token.

De ADFS kan worden geconfigureerd met specifieke claims (of machtigingen) voor de gebruiker, voor autorisatiedoeleinden. Dus het kan beide rollen dienen. (Merk op verschil tussen authenticatie en autorisatie.)

Sommige mensen geven er de voorkeur aan om het niet te gebruiken voor autorisatie, maar houden in plaats daarvan het rechtenbeheer bij op de website van derden. Het duidelijke nadeel is dat beide sites A & B gebruikersaccounts moeten bijhouden, terwijl in het scenario waarin ADFS beide verwerkt, alleen de ADFS op de hoogte hoeft te zijn van de gebruikers.

Zijn ADFS-servers meestal toegankelijk vanaf internet (terwijl AD-domeincontrollers voor bedrijven dat niet zouden zijn)?

Ja, bijna altijd. ADFS is gebaseerd op het idee dat het voornamelijk zal worden gebruikt voor website-authenticatie. En is gebouwd rond IIS.

De ADFS-proxy-site is deze meestal toegankelijk vanaf internet. Maar de ADFS zelf is dat niet. De ADFS is over het algemeen een afzonderlijke server van de ADFS-proxy.

  • ADFS-server
    Server die leent naar de inloggegevens en de configuratie van claims heeft evenals de trusts. Over het algemeen niet publiek toegankelijk.
  • ADFS-proxyserver
    Server die als host fungeert voor het IIS-exemplaar met de aanmeldingspagina's voor de websites waarvoor verificatie vereist is. Communiceert terug naar de ADFS wanneer verificatie vereist is. Over het algemeen publiek toegankelijk.

82
2017-07-27 07:26



Verduidelijken: ADFS-proxyserver moet worden uitgevoerd op IIS (Windows). Clientwebsites (B & C) kunnen echter elk OS en elke webserver, inclusief Linux, draaien. - Olli
Zeer nuttig, zojuist een account aangemaakt om dit op de duim te houden. - Juan