Federeren met AD FS van een klant
In dit artikel wordt beschreven hoe een Multitenant SaaS-toepassing verificatie via Active Directory Federation Services (AD FS) kan ondersteunen om te federeren met de AD FS.
Federatiescenario
Azure Active Directory (Azure AD) kunt u eenvoudig gebruikers van Azure AD-tenants aanmelden, waaronder Office365- en Dynamics CRM Online-klanten. Maar hoe zit het met klanten die on-premises Active Directory op een bedrijfs intranet?
Een optie is dat deze klanten hun on-premises AD synchroniseren met Azure AD, met behulp [van Azure AD Verbinding maken]. Sommige klanten kunnen deze benadering echter mogelijk niet gebruiken vanwege it-beleid van het bedrijf of om andere redenen. In dat geval is een andere optie om te federeren via Active Directory Federation Services (AD FS).
Dit scenario inschakelen:
- De klant moet een internet-gerichte AD FS hebben.
- De SaaS-provider implementeert zijn eigen AD FS farm.
- De klant en de SaaS-provider moeten [federatievertrouwen instellen.] Dit gebeurt handmatig.
Er zijn drie hoofdrollen in de vertrouwensrelatie:
De klant AD FS is de accountpartner, die verantwoordelijk is voor het authenticeren van gebruikers van de AD van de klant en het maken van beveiligingstokens met gebruikersclaims.
De saaS-provider AD FS de [bronpartner], die de accountpartner vertrouwt en de gebruikersclaims ontvangt.
De toepassing wordt geconfigureerd als een relying party (RP) in de AD FS van de SaaS-AD FS.

Notitie
In dit artikel gaan we ervan uit dat de toepassing OpenID-Verbinding maken als verificatieprotocol gebruikt. Een andere optie is om WS-Federation te gebruiken.
Voor OpenID Verbinding maken moet de SaaS-provider gebruikmaken van AD FS 2016, dat wordt uitgevoerd in Windows Server 2016. AD FS 3.0 biedt geen ondersteuning voor OpenID-Verbinding maken.
Zie het voorbeeld active-directory-dotnet-webapp-wsfederationvoor een voorbeeld van het gebruik van WS-Federation met ASP.NET 4.
<a name="authentication-flow">Verificatiestroom
- Wanneer de gebruiker op 'aanmelden' klikt, wordt de toepassing omgeleid naar een OpenID Verbinding maken-eindpunt op de AD FS van de SaaS-AD FS.
- De gebruiker voert de gebruikersnaam van zijn of haar organisatie in ("
alice@corp.contoso.com"). AD FS maakt gebruik van thuis realmdetectie om om te leiden naar de AD FS van de klant, waar de gebruiker zijn of haar referenties invoert. - De klant verzendt AD FS claims naar de saaS-provider AD FS, met behulp van WF-Federation (of SAML).
- Claims stromen van AD FS naar de app met behulp van OpenID-Verbinding maken. Hiervoor is een protocolovergang van WS-Federation vereist.
Beperkingen
Standaard ontvangt de relying party-toepassing alleen een vaste set claims die beschikbaar zijn in de id_token, zoals wordt weergegeven in de volgende tabel. Met AD FS 2016 kunt u de id_token in OpenID-scenario'Verbinding maken aanpassen. Zie Aangepaste id-tokens in AD FS.
| Claim | Description |
|---|---|
| aud | Publiek. De toepassing waarvoor de claims zijn uitgegeven. |
| verificatieinstant | [Verificatie direct.] Het tijdstip waarop de verificatie heeft plaatsgevonden. |
| c_hash | Code-hashwaarde. Dit is een hash van de inhoud van het token. |
| Exp | Verlooptijd. De tijd waarna het token niet meer wordt geaccepteerd. |
| Iat | Uitgegeven op. Het tijdstip waarop het token is uitgegeven. |
| Iss | Uitgevende instelling. De waarde van deze claim is altijd de waarde van de bronpartner AD FS. |
| naam | Gebruikersnaam. Voorbeeld: john@corp.fabrikam.com |
| nameidentifier | Naam-id. De id voor de naam van de entiteit waarvoor het token is uitgegeven. |
| Nonce | Sessie nonce. Een unieke waarde die wordt gegenereerd door AD FS om replay-aanvallen te voorkomen. |
| upn | User Principal Name (UPN). Voorbeeld: john@corp.fabrikam.com |
| pwd_exp | Verloopperiode van wachtwoord. Het aantal seconden tot het wachtwoord van de gebruiker of een vergelijkbaar verificatiegeheim, zoals een pincode. Verloopt. |
Notitie
De iss-claim bevat de AD FS van de partner (deze claim identificeert doorgaans de SaaS-provider als verlener). Er wordt geen identificatie van de klantgegevens AD FS. U kunt het domein van de klant vinden als onderdeel van de UPN.
In de rest van dit artikel wordt beschreven hoe u de vertrouwensrelatie in kunt stellen tussen de RP (de app) en de accountpartner (de klant).
AD FS implementatie
De SaaS-provider kan AD FS on-premises of op azure-VM's implementeren. Voor beveiliging en beschikbaarheid zijn de volgende richtlijnen belangrijk:
- Implementeer ten minste twee AD FS servers en twee proxyservers AD FS de beste beschikbaarheid van de AD FS service.
- Domeincontrollers en AD FS mogen nooit rechtstreeks worden blootgesteld aan internet en moeten zich in een virtueel netwerk met directe toegang tot deze servers.
- Webtoepassings-proxies (voorheen AD FS-proxies) moeten worden gebruikt voor het publiceren AD FS servers op internet.
Voor het instellen van een vergelijkbare topologie in Azure is het gebruik van virtuele netwerken, netwerkbeveiligingsgroepen, virtuele machines en beschikbaarheidssets vereist. Zie Guidelines for deploying Windows Server Active Directory on Azure Virtual Machines (Richtlijnen voor het implementeren van een Virtual Machines) voor meer Virtual Machines.
OpenID configureren Verbinding maken verificatie met AD FS
De SaaS-provider moet OpenID-Verbinding maken tussen de toepassing en de AD FS. Als u dit wilt doen, voegt u een toepassingsgroep toe aan AD FS. In dit [blogbericht]vindt u gedetailleerde instructies onder 'Een web-app instellen voor OpenId Verbinding maken u zich AD FS.'
Configureer vervolgens de OpenID Verbinding maken middleware. Het eindpunt voor metagegevens is , waarbij het domein het domein van de https://domain/adfs/.well-known/openid-configuration SaaS-provider is AD FS domein.
Normaal gesproken combineert u dit met andere OpenID Verbinding maken eindpunten (zoals Azure AD). U hebt twee verschillende aanmeldingsknoppen of een andere manier nodig om ze te onderscheiden, zodat de gebruiker naar het juiste verificatie-eindpunt wordt verzonden.
De AD FS-resourcepartner configureren
De SaaS-provider moet het volgende doen voor elke klant die verbinding wil maken via AD FS:
- Voeg een vertrouwensrelatie van de claimprovider toe.
- Voeg claimregels toe.
- Schakel thuis realmdetectie in.
Hier volgen de stappen in meer detail.
De vertrouwensrelatie van de claimprovider toevoegen
- Klik in Serverbeheer op Extra, en selecteer vervolgens AD FS Management.
- Klik in de consolestructuur onder AD FS met de rechtermuisknop op Claims Provider Vertrouwt. Selecteer Vertrouwensrelatie claimprovider toevoegen.
- Klik op Start om de wizard te starten.
- Selecteer de optie Gegevens importeren over de claimprovider die online of in een lokaal netwerk is gepubliceerd. Voer de URI van het eindpunt voor federatiemetagegevens van de klant in. (Voorbeeld:
https://contoso.com/FederationMetadata/2007-06/FederationMetadata.xml.) U moet deze van de klant krijgen. - Voltooi de wizard met de standaardopties.
Claimregels bewerken
- Klik met de rechtermuisknop op de zojuist toegevoegde vertrouwensrelatie van de claimprovider en selecteer Claimregels bewerken.
- Klik op Regel toevoegen.
- Selecteer 'Pass Through or Filter an Incoming Claim' en klik op Next.

- Voer een naam in voor de regel.
- Selecteer onder Binnenkomend claimtype de optie UPN.
- Selecteer Alle claimwaarden doorgeven.

- Klik op Voltooien.
- Herhaal stap 2 tot en met 7 en geef Ankerclaimtype op voor het binnenkomende claimtype.
- Klik op OK om de wizard te voltooien.
<a name="enable-home-realm-discovery">Thuis realm-detectie inschakelen
Voer het volgende PowerShell-script uit:
Set-AdfsClaimsProviderTrust -TargetName "name" -OrganizationalAccountSuffix @("suffix")
waarbij 'name' de gebruiksvriendelijke naam is van de vertrouwensrelatie van de claimprovider en 'achtervoegsel' het UPN-achtervoegsel is voor de AD van de klant (bijvoorbeeld 'corp.fabrikam.com').
Met deze configuratie eindgebruikers kunt typen in hun organisatie-account en AD FS automatisch de bijbehorende claimprovider geselecteerd. Zie [Customizing the AD FS Sign-in Pages](Aanmeldingspagina's aanpassen) in de sectie Configure Identity Provider to use certain email suffixes (Id-provider configureren voor het gebruik van bepaalde e-mailachtervoegsels).
De AD FS-accountpartner configureren
De klant moet het volgende doen:
- Voeg een vertrouwensrelatie van een relying party (RP) toe.
- Voegt claimregels toe.
De RP-vertrouwensrelatie toevoegen
- Klik in Serverbeheer op Extra, en selecteer vervolgens AD FS Management.
- Klik in de consolestructuur onder AD FS met de rechtermuisknop op Relying Party Trusts. Selecteer Vertrouwensrelatie van Relying Party toevoegen.
- Selecteer Claimbewust en klik op Starten.
- Selecteer op de pagina Gegevensbron selecteren de optie Gegevens importeren over de claimprovider die online of in een lokaal netwerk is gepubliceerd. Voer de URI in van het eindpunt voor federatiemetagegevens van de SaaS-provider.

- Voer op de pagina Weergavenaam opgeven een naam in.
- Kies op de Access Control Beleid kiezen een beleid. U kunt iedereen in de organisatie toestaan of een specifieke beveiligingsgroep kiezen.

- Voer de vereiste parameters in het vak Beleid in.
- Klik op Volgende om de wizard te voltooien.
Claimregels toevoegen
Klik met de rechtermuisknop op de zojuist toegevoegde vertrouwensrelatie voor relying party's en selecteer Claimuitgiftebeleid bewerken.
Klik op Regel toevoegen.
Selecteer LDAP-kenmerken verzenden als claims en klik op Volgende.
Voer een naam in voor de regel, zoals 'UPN'.
Selecteer active directory onder Kenmerkopslag.

In de sectie Toewijzing van LDAP-kenmerken:
- Selecteer onder LDAP-kenmerk de optie User-Principal-Name.
- Selecteer upn onder Uitgaand claimtype.

Klik op Voltooien.
Klik nogmaals op Regel toevoegen.
Selecteer 'Claims verzenden met een aangepaste regel' en klik op Volgende.
Voer een naam in voor de regel, zoals 'Type ankerclaim'.
Voer onder Aangepaste regel het volgende in:
EXISTS([Type == "http://schemas.microsoft.com/ws/2014/01/identity/claims/anchorclaimtype"])=> issue (Type = "http://schemas.microsoft.com/ws/2014/01/identity/claims/anchorclaimtype", Value = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn");Deze regel geeft een claim van het type
anchorclaimtypeuit. De claim vertelt de relying party om UPN te gebruiken als onveranderbare id van de gebruiker.Klik op Voltooien.
Klik op OK om de wizard te voltooien.