In this article, we will setup the new AD FS 4.0 in Windows Server 2016 to publish external resources with the new Web Application Proxy feature. For this scenario, we will use IIS and SharePoint Server relying party and we will go through new features introduced in AD FS 4.0. This new version bring a lot of changes and features in regard of previous AD FS version. This article will be in three parts :
For a review of the new features included in AD FS 4.0 (vNext, Server 2016 TP) see :
-
We want to test and understand new capabilities in AD FS 4.0 including : (part1)
(part2)
There is no major change with certificate in AD FS 4.0 : SSL Communication, Token Signin and Token Decryption For the Service Communication certificate, you will need to setup a SSL certificate with the following name :
Note : The certauth subdomain certificate allow you to have only the 443 port used under a different hostname rather than using the same hostname with the 49443 port. You can use the new PowerShell CMDlet : Set-AdfsAlternateTLSClientBinding. See this KB for additional information about this change.
These steps are quite similar to AD FS in Windows Server 2012R2:
Install ADFS Role in a CMD.exe run as administrator :
Install-windowsfeature adfs-federation -IncludeManagementTools
Uninstall-windowsfeature adfs-federation -IncludeManagementTools
Install SSL Certificate :
Install ADFS Farm :
# Windows PowerShell script for AD FS Deployment
Import-Module ADFS
$credentials = Get-Credential
Install-AdfsFarm `
-CertificateThumbprint:
"A909502DD82AE41433E6F83886B00D4277A32A7B"
`
-FederationServiceDisplayName:
"Contoso Corporation"
-FederationServiceName:
"adfs2016.contoso.com"
-GroupServiceAccountIdentifier:
"CONTOSO\ADFS2016gMSA`$"
-SQLConnectionString:
"Data Source=SQLSRV\INSTANCE;Initial Catalog=ADFSConfiguration;Integrated Security=True;Min Pool Size=20"
Test-AdfsFarmInstallation -FederationServiceName
"ADFS2016.CONTOSO.COM"
Install WebApplication Proxy 4.0 using Powershell
Install-WindowsFeature Web-Application-Proxy -IncludeManagementTools
Uninstall-WindowsFeature Web-Application-Proxy -IncludeManagementTools
Install-WebApplicationProxy `
-CertificateThumbprint
'BB01197C7EF3D88C326091BF528FCC1F5C5F794F'
-FederationServiceName
'adfs2016.contoso.com'
Now with AD FS 4.0 the https://adfs2016.contoso.com/adfs/ls/IdpInitiatedSignon page is disabled by default. The logon page will be available only with the use of a Relying Party or with an Application Group.
Set-AdfsProperties -EnableIdPInitiatedSignonPage:$true
Set-AdfsProperties -EnableRelayStateForIdpInitiatedSignOn:$true
This is a new feature introduced with AD FS 4.0. You can now delegate permission for administering the AD FS Configuration
If you want to delegate the AD FS Management run :
Set-AdfsProperties -DelegateServiceAdministration
"CONTOSO\ADFS_Delegated_Admins"
runas /noprofile /user:contoso\adfs_admin
"mmc %windir%\ADFS\Microsoft.IdentityServer.msc"
If the user is not present in the ADFS_Delegated_Admins group, he will receive : ADMIN0120: The client is not authorized to access the endpoint
No majors change for this part: Default Settings:
Two new settings : BrowserSsoEnabled and BrowserSsoSupportedUserAgents. They work together. When the BrowserSsoEnabled settings is set to true (by default) the browser will try to perform the authentication by itself on the BrowserSsoSupportedUserAgents.
When this settings is active, end-users will see this screen when logging to a Relying Party or in the IdpInitiatedSignon page (if you have enabled it) This behavior will be present on a Windows 10 computer and not for Windows 7. Note : at this stade, there is no enough information to provide explication on what it's supposed to do. I guess this is for Device Certificate Authentication. As this BrowserSSO attempt take several second more than the "automatic logon with logged-on credential". You can disable this feature if you don't use it.
Another feature introduced with AD FS 4.0 is the ability to configure in the management console the certificate issuance with two possible modes. This will be used for User Logon and VPN Access.
You can manage these settings in the MMC or by running the powershell CMDLet : For Standalone :
Set-AdfsCertificateAuthority -SelfIssued
Set-AdfsCertificateAuthority `
-EnrollmentAgent `
-CertificateAuthority
"ca.contoso.local\contoso-CA"
-EnrollmentAgentCertificateTemplate
"TemplateName"
-LogonCertificateTemplate
-VPNCertificateTemplate
This is a new cool feature introduced in AD FS 4.0, this will allow you to specify a default permission for a new Relying Trust or Application Groups. You can either use default Access Control Policy or create new ACP
This is much simpler than previous ADFS version where claims rules and regex language was used. In my example; I will create a new Access Control Policy "Allow Restricted_Group ONLY From Intranet Network" This took me 30 seconds and I can re-use this policy for future Relying Party !
Applications Groups in AD FS 4.0 are template for publishing Client-Server or Standalone Applications : We will see in the next part how to use these Application Group and how they work.
The OAuth Scope Descriptions is designed to work with Applications Group. Basically saying, this will replace the need of Claims Rules and offers a set of default handler for Application Group
Set-AdfsRelyingPartyWebContent `
-TargetRelyingPartyName
"RelyingPartyName"
-CompanyName
"CONTOSO INC"
-OrganizationalNameDescriptionText
"RP_TRUST CONTOSO"
-SignInPageDescription
"Please enter your credential to login"
And finally for this first part, you have now the ability to authenticate user from any other LDAP directory with the new New-AdfsLdapServerConnection
In the next part, we will see how publish application using the new features.