Microsoft Azure MFA met ADFS integratie is bij het gebruik van de on-premises software mogelijk met de AD FS adapter. Binnen de ADFS-omgeving komt daarmee de WindowsAzureMultiFactorAuthentication provider beschikbaar zoals te zien is in de volgende afbeelding:
Op ditzelfde tabblad kunnen er instellingen worden gemaakt onder welke condities gebruikers van de diensten wel of geen multi factor authenticatie vraag krijgen.
De eerste mogelijkheid is het toevoegen van een groep uit de Active Directory. Hiermee kan worden gespecificeerd dat alle leden van de betreffende groep multi factor moeten authenticeren.
Hierbij kan ook onderscheid gemaakt worden tussen Registered en Unregistered devices:
Dit betekent:
Registered devices: is een workplace-joined apparaat.
Unregistered devices: is een niet-geregistreerd apparaat.
Als laatste kan hier worden aangegeven of multi factor ingelogd dient te worden afhankelijk van intranet of extranet.
Dit betekent:
Intranet: Voor intranetbronnen is standaard geïntegreerde Windows-authenticatie vereist.
Extranet: Voor extranetbronnen is standaard authenticatie op basis van formulieren vereist
In sommige situaties zou je, om een bepaald doel te bereiken, een combinatie van deze opties willen gebruiken. Dit is helaas niet mogelijk vanuit de console, maar zal er via powershell een nieuwe additionele authenticatie regel ingesteld moeten worden waarbij het wel mogelijk is om de combinaties te maken.
In onderstaand voorbeeld is de wens voor de combinatie aanwezig en zal deze gezet worden.
Case Azure MFA met ADFS voor Citrix-omgeving
Een klant heeft een on-premises omgeving met daarin een ADFS-omgeving die meerdere federaties heeft met externe partijen waaronder Office 365. Daarnaast is er een Citrix omgeving beschikbaar. Alle gebruikers beschikken over een Office 365 licentie, hebben een mailbox in de cloud en werken samen in SharePoint online.
Wens voor Authenticatie: alle gebruikers worden beschouwd als extern behalve als men vanaf Citrix komt. Alle externe gebruikers dienen middels Multi Factor te authenticeren. Vanaf Citrix is Multi Factor niet nodig. Daarnaast wil men een geleidelijke invoering zodat er per gebruikers groep geïnstrueerd kan worden.
Het onderscheidt tussen een gebruiker welke via Citrix komt en welke niet via Citrix komt is relatief eenvoudig. De gebruikers op de Citrix omgeving worden naar de interne kant van AD FS geleid en authenticeren middels de gebruikelijke windows authenticatie. Alle overige gebruikers worden via DNS naar de AD FS Proxies geleid en authenticeren dus altijd form-based.
Om daarnaast een gefaseerde invoering te kunnen doen zullen we in dit voorbeeld een groep toevoegen.
Om te voldoen aan deze criteria zetten we middels powershell de condities op de betreffende relaying party waarbij deze gecombineerd worden middels het volgende powershell commando:
$relyingparty = Get-AdfsRelyingPartyTrust –Name "Microsoft Office 365 Identity Platform" Set-AdfsRelyingPartyTrust –TargetRelyingParty $relyingparty –AdditionalAuthenticationRules 'c: [Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == <<HIER KOMT DE SID VAN DE BETREFFENDE GROEP>>"] && [Type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "http://schemas.microsoft.com/claims/multipleauthn");'
Let er op dat je bovenstaande powershell commando aanpast met de juiste RelyingPartyTrust en de juiste SID van de betreffende groep.
Om op relaying party niveau de gezette additionele authenticatie regel weer te verwijderen kan het volgende commando worden gebruikt:
$newMFARule = "" Set-AdfsRelyingPartyTrust -TargetName "Microsoft Office 365 Identity Platform" -AdditionalAuthenticationRules $newMFARule
Eventueel kan dit ook op globaal niveau gezet worden met het volgende commando in powershell:
Set-AdfsAdditionalAuthenticationRule –AdditionalAuthenticationRules 'c: [Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid", Value == "<<HIER KOMT DE SID VAN DE BETREFFENDE GROEP>>"] && [Type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", Value == "false"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", Value = "http://schemas.microsoft.com/claims/multipleauthn");'
Let er op dat je bovenstaande powershell commando aanpast met de juiste RelyingPartyTrust en de juiste SID van de betreffende groep.
Om op globaal niveau de gezette additionele authenticatie regel weer te verwijderen kan het volgende commando worden gebruikt:
Set-AdfsAdditionalAuthenticationRule -AdditionalAuthenticationRules $NULL
Wanneer je via powershell de additionele authenticatie regels toevoegt, verdwijnt daarmee ook de mogelijkheid om deze te bekijken en/of aan te passen via de console.
Uiteraard zijn deze wel eenvoudig via powershell op te vragen.
De mogelijkheid om op deze manier combinaties te maken is wat ons betreft een erg sterke functionaliteit welke zeker van pas komt en gaat komen. Opmerkingen of andere wensen? Reageer hieronder.
Bron: o.a. MSDN