De hier beschreven configuratie voor ADFS-authenticatie is getest in de praktijk. WGP ondersteunt echter mogelijk niet alle opties van ADFS op basis van Security Assertion Markup Language (SAML).
WGP kun je nu zo configureren dat de authenticatie van de gebruikers via Active Directory Federation Services (ADFS) verloopt, waardoor ook meervoudige verificatie (Multi-factor Authentication) vanaf de ADFS-server mogelijk is: een gebruiker meldt zich aan met zijn eigen Windows-inloggegevens maar krijgt pas toegang tot het systeem nadat er een extra authenticatie-stap is uitgevoerd (zoals het beantwoorden van een telefonische bericht).
ADFS-authenticatie vertoont de volgende kenmerken:
- Indien de ADFS niet beschikbaar zijn kun je je niet bij WGP aanmelden.
- Gebruikers die niet opgenomen zijn in de ADFS kunnen geen toegang krijgen.
- Anonieme toegang tot de WGP-kaarten is niet meer mogelijk.
- ADFS is niet alleen in het interne netwerk beschikbaar maar ook daar buiten.
- Bij autorisatie op basis van ADFS blijft in WGP het gebruikersbeheer hetzelfde. Wel verandert de plek waar de inloggegevens getoetst worden op hun juistheid. Dat gebeurt nu door de ADFS. De ADFS controleert de WGP-gebruikers op basis van de inloggegevens waarmee zij zich al eerder bij Windows hadden aangemeld. Als een gebruiker volgens de ADFS mag inloggen, kijkt WGP vervolgens in zijn configuratie welke rol de gebruiker heeft en welke rechten op functionaliteit en themakaarten daarbij horen.
De configuratie voor ADFS-authenticatie omvat een aantal wijzigingen in het configuratiebestand van WGP (web.config
). Het vereist bovendien het handmatig toevoegen van de gebruikers uit de AD-directory aan het bestand users.xml
, omdat de AD-directory niet direct toegankelijk is en alleen via de ADFS-services te benaderen is. De gebruikers moeten in het bestand users.xml
ook handmatig worden beheerd.
De configuratie en het gebruik van ADFS-authenticatie wordt in de volgende paragrafen verder toegelicht:
Configuratie van ADFS-authenticatie
Voor ADFS-authenticatie moet je zowel ADFS-server als WGP configureren. In ADFS moet je WGP als 'Relying trust party' toevoegen en de 'Claim rules' voor de AD-attributen instellen. In WGP moet het configuratiebestand aangepast worden. Bovendien moet de browser voor ADFS-authenticatie geschikt gemaakt worden.
De afstemming tussen WGP en de ADFS-server gebeurt op basis van een configuratie waarbij het belangrijk is dat er aan beide kanten dezelfde parameters bekend zijn en de inhoud daarvan ook overeen moet komen.
Wanneer WGP in een ADFS-omgeving draait kan de module Bestandsbeheer (file manager) een foutmelding geven met code ID4291. Deze fout is op te lossen door op de WGP-server in het configuratiebestand web.config
het attribuut path="/"
toe te voegen aan het element <cookieHandler/>
van de sectie 'federationConfiguration
'.
<cookieHandler requireSsl="false" path="/" />
Configuratie van ADFS
De configuratie van de ADFS-server omvat twee zaken:
- Add Relying Party Trust (met een wizard)
- Edit Claim Rules
Zie ook onderdeel Problemen bij implementatie ADFS.
Add Relying Party Trust
Op de volgende manier voeg je WGP toe als Relying Party Trust:
- Start de Add Relying Trust Party wizard. Het venster Add Relying Trust Party verschijnt.
In dit venster voer je de gegevens van WGP in, zoals de naam, de URL, identificatiezaken, autorisatieregels en hoe de meervoudige verificatie (Multi-factor Authentication) wordt gebruikt. De wizard toont de instellingen van de eerste configuratiestap: stapSelect Data Source
. - Selecteer de optie Enter data about de relying party manually en klik Next. De wizard springt naar de volgende configuratiestap: stap
Specify Display Name
. - Geef bij het veld Display name de naam op die ADFS gebruikt voor WGP. Klik op Next. De wizard springt naar de volgende configuratiestap: stap
Choose Profile
. - Selecteer profiel AD FS profile. Klik op Next. De wizard springt naar de volgende configuratiestap: stap
Configure Certificate
. - Voor de stap
Configure Certificate
hoef je niets te wijzigen. Klik direct op Next. De wizard springt naar de volgende configuratiestap: stapConfigure URL
. - Selecteer Enable support for the SAML 2.0 Web SSO protocol en vul bij Relying party SAML 2.0 SSO service URL de URL van de WGP-server in. Klik op Next. De wizard springt naar de volgende configuratiestap: stap
Configure Identifiers
. - Selecteer de URL van de WGP-server en geef WGP bij Relying party trust identifier een identificatiecode. Klik op Next. De wizard springt naar de volgende configuratiestap: stap
Configure Multi-factor Authentication Now?
. - Voor de stap
Configure Multi-factor Authentication Now?
hoef je niets te wijzigen. Klik direct op Next. De wizard springt naar de volgende configuratiestap: stap Choose Issuance Authorization Rules. - Selecteer optie Permit all users to access this relying party. Alle gebruikers van ADFS krijgen hiermee in principe toegang tot WGP. WGP kan echter op basis van de rol van een gebruiker alsnog de toegang weigeren. Klik op Next. De wizard springt naar de volgende configuratiestap: stap
Ready to Add Trust
. - Controleer de configuratie en klik Next. De wizard springt naar de volgende configuratiestap: stap
Finish
. - Klik Finish.
Edit Claim Rules
Een claim wordt door de server afgegeven als bewijs van wie een gebruiker is. In de claim staat verder niet aangegeven wat de gebruiker kan doen.
Op de volgende manier kun je een 'Claim rule' voor WGP configureren:
- Maak in het venster Edit Claim Rules een claim rule voor WGP aan. Klik Add rule en geef de regel een naam.
- Selecteer deze claim rule door erop te klikken.
- Klik op de knop Edit rule. Het venster Edit Rule - <regelnaam> verschijnt.
- Selecteer bij Attribute store de naam van de LDAP-directory, bijvoorbeeld
Active Directory
. - Koppel de 'outgoing claimtypes' (parameters van WGP) voor de gebruikersnaam en de gebruikersgroep aan de corresponderende attributen in de LDAP-directory, bijvoorbeeld zoals hieronder staat aangegeven:
- LDAP-attribuut
User-Principle-Name
→ claimtypeUPN
. - LDAP-attribuut
SAM-Account-Name
→ claimtypeName
. LDAP-attribuut
Token-Groups - Qualified by Doma...
→ claimtypeGroup
.De attribuutnamen zullen voor elke configuratie anders zijn. Zorg dat de 'outgoing claimtypes' (parameters van WGP) corresponderen met de geselecteerde LDAP-attributen. Als deze niet overeenkomen zal ADFS geen claim afgeven en zal een gebruiker daarom geen toegang tot WGP hebben.
- LDAP-attribuut
- Klik OK. De wijzigingen worden opgeslagen.
Configuratie van WGP
Om WGP correct met ADFS te laten werken moet je het configuratiebestand (web.config
) aanpassen. Afgezien van element <authentication>
, zijn alle elementen die voor ADFS worden gebruikt uitgecommentarieerd. Deze elementen bevatten dummy-waarden voor de instellingen die je voor de specifieke WGP-installatie moet invullen. Bij de betreffende onderdelen staat een opmerking dat ze worden gebruikt voor 'authenticatie ADFS
'. Voor ADFS-authenticatie dien je de onderdelen te ontcommentariëren door de commentaarmarkering !--
en --
weg te halen en de dummy-waarden te vervangen door de echte waarden.
Het configuratiebestand van WGP (bestand web.config
) is voorzien van commentaar waarin staat aangegeven hoe en waar je het bestand moet aanpassen voor het implementeren van de ADFS-authenticatie. In het commentaar wordt steeds de term 'ADFS
' vermeld en je kunt deze term dus gebruiken om de coderegels te vinden die moeten worden aangepast.
Het configuratiebestand kan actuelere informatie over de configuratie bevatten dan de gebruikersdocumentatie vanwege de frequente updates van WGP.
Voor ADFS moet je bestand web.config
op de volgende manier aanpassen:
Schakel de volgende twee secties in door hen te ontcommentariëren (weghalen
!--
en--
):<!--<section name="system.identityModel"
type="System.IdentityModel.Configuration.SystemIdentityModelSection,
System.IdentityModel, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=B77A5C561934E089" />
<section name="system.identityModel.services"type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection,
System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />-->
Je hoeft in deze secties verder geen instellingen te wijzigen.
Schakel de volgende <add key>-elementen in door ze te ontcommentariëren (weghalen
!--
en--
) en vul de vetgedrukte waarden in:<!--<add key="ida:FederationMetadataLocation" value="<url van metadata-host>/FederationMetadata/2007-06/FederationMetadata.xml" />
<add key="ida:Realm" value="<web-ID aanvragende server>" />
<add key="ida:AudienceUri" value="<uri ADFS-aanvrager>" />-->
FederationMetadataLocation
is de URL van het XML-document dat de metadata van de ADFS-omgeving bevat, bijvoorbeeld:https://subdomein.adfshost.topdomein/FederationMetadata/2007-06/FederationMetadata.xml
Realm
is de unieke identificatie van de aanvragende server, in dit geval de URI van de server waar WGP met IIS op draait, bijvoorbeeld:https://subdomein.wgphost.topdomein/
AudienceUri
is het internetadres van de webapplicatie waarvan de ADFS-server aanvragen accepteert, in dit geval eveneens de URI van de WGP-server, bijvoorbeeld:https://subdomein.wgphost.topdomein/
Het <authenticatie>-element moet de modus 'Windows' krijgen:
<authentication mode="Windows">
Schakel in de sectie <runAllManagedModulesForAllRequests> de volgende twee elementen in door ze te ontcommentariëren (weghalen
!--
en--
):<!--<add name="WSFederationAuthenticationModule" type="System.IdentityModel.Services.WSFederationAuthenticationModule,
System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
<add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />-->Je hoeft de ingevulde instellingen verder niet te wijzigen.
Schakel secties <system.identityModel> en <system.identityModel.services> in door ze te ontcommentariëren (weghalen
!--
en--
) en vul de vetgedrukte attribuutwaarden in:<!--<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="<uri ADFS-aanvrager>" />
</audienceUris>
<securityTokenHandlers>
<add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</securityTokenHandlers>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<trustedIssuers>
<add thumbprint="1234567890ABCDEF1234567890ABCDEF12345678" name="<uri ADFS-server>/services/trust" />
</trustedIssuers>
</issuerNameRegistry>
<certificateValidation certificateValidationMode="None" />
</identityConfiguration>
</system.identityModel>
<system.identityModel.services>
<federationConfiguration>
<cookieHandler requireSsl="false" />
<wsFederation passiveRedirectEnabled="true" issuer="<uri ADFS-server>/adfs/ls/" realm="<web-ID aanvragende server>" requireHttps="true" />
</federationConfiguration>
</system.identityModel.services>-->
In sectie <system.identityModel> moet
audienceUris
dezelfde waarde krijgen als de eerder genoemdeAudienceUri
(de URI van de WGP-server) en bijtrustedIssuers
moet de URL en de 'vingerafdruk' (thumbprint
) van de ADFS-server opgegeven worden, bijvoorbeeld:<add thumbprint="1234567890ABCDEF1234567890ABCDEF12345678" name="https://subdomein.adfshost.topdomein/adfs/services/trust" />
WGP gebruikt deze gegevens om ADFS-claims op te halen.
In sectie <system.identityModel.services> moet je bij element
<wsFederation>
de URL van de host opgeven waarmee WGP ADFS-claims ophaalt en de realm (aanvragende server) invullen zoals eerder is aangegeven, bijvoorbeeld:<wsFederation passiveRedirectEnabled="true" issuer="https://subdomein.adfshost.topdomein/adfs/ls/" realm="https://subdomein.wgphost.topdomein/" requireHttps="true" />
Configuratie webbrowser
Om zonder je opnieuw te hoeven aanmelden toegang tot WGP te krijgen moet de webbrowser aangepast worden. De configuratie van de webbrowser die je voor WGP gebruikt verschilt per browser. Onderdeel Configuratie voor SSO beschrijft de configuratie voor Google Chrome, Mozilla Firefox en Microsoft Internet Explorer.
Gebruik van ADFS-authenticatie
Aanmelden
Als WGP juist is geconfigureerd voor ADFS-authenticatie, kun je je aanmelden via de ingestelde ADFS-server. Nadat je in de webbrowser de URL van WGP hebt opgevraagd, zal de ADFS-server een aanmeldpagina aanbieden of zul je op basis van je Windows-gebruikersgegevens automatisch worden aangemeld. Of er wel of geen aanmeldpagina verschijnt hangt af van de configuratie van de server. Je hebt daarop in WGP geen invloed.
De server kan met een aanvullende authenticatie-factor de toegang tot WGP hebben beveiligd (multi-factor authentication), bijvoorbeeld door na het aanmelden een bericht naar je mobiele toestel te sturen waarin gevraag wordt om het bericht te beantwoorden. Pas daarna wordt je de toegang tot WGP verleend. Deze extra authenticatie wordt ook helemaal door de ADFS-server bepaald.
Beheer van gebruikers
Wanneer de authenticatie van WGP via een ADFS-server verloopt zal WGP alleen verbinding hebben met deze server en niet met de AD-directory waarin de gebruikersgegevens staan opgeslagen. De gegevens uit de AD-directory, zoals gebruikersgroepen en gebruikersnamen, zullen daarom in WGP niet beschikbaar zijn.
Om zich te kunnen aanmelden moet een gebruiker van WGP in de AD-directory aanwezig zijn en ook als gebruiker aan WGP zijn toegevoegd. Dit laatste moet handmatig gebeuren, dat wil zeggen dat de namen van de AD-gebruikers met behulp van een teksteditor (of een XML-editor) aan het bestand users.xml
moeten worden toegevoegd. Je vindt dit bestand op de WGP-server in locatie /user/settings
. De wachtwoorden van de WGP-gebruikers zijn in de AD-directory vastgelegd en kunnen in WGP niet worden gewijzigd.