<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Mahesh Unnikrishnan’s Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/maheshu/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/maheshu/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 06:21:08 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>JSON Web Token (JWT) support in ADFS</title>
      <link>https://docs.microsoft.com/archive/blogs/maheshu/json-web-token-jwt-support-in-adfs</link>
      <pubDate>Tue, 26 May 2015 16:15:33 GMT</pubDate>
      <dc:creator><![CDATA[Mahesh Unnikrishnan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/maheshu/2015/05/26/json-web-token-jwt-support-in-adfs/</guid>
      <description><![CDATA[Hi, there! In the past few posts, I’ve covered some of the new features in Active Directory...]]></description>
      <content:encoded><![CDATA[<p align="justify">Hi, there! In the past few posts, I’ve covered some of the new features in Active Directory Federation Services (ADFS) on Windows Server 2012 R2. One of the new capabilities we’ve added is the ability for ADFS to issue JWTs (JSON Web Tokens) in response to authorization requests. JWT is a JSON-based open standard that enables authorization services like ADFS to issue tokens with claims represented in a compact manner. This compact representation makes JWTs ideal for consumption by web applications and makes them mobile device friendly (i.e. consume less bandwidth and fit in size constrained HTTP headers on mobile browsers etc.). Additionally, JWTs are primarily JSON objects which are very easy to work with in a wide variety of languages making app development significantly easier.</p> <h3 align="justify"><font color="#0000ff">JWT support across federation protocols</font></h3> <p align="justify">The following table illustrates the support in ADFS for issuing JWTs for each of the authorization protocols supported by it. </p> <table cellspacing="0" cellpadding="2" width="400" border="1"> <tbody> <tr> <td valign="top" width="200"><strong> Authorization Protocol</strong></td> <td valign="top" width="198"><strong> JWT support</strong></td></tr> <tr> <td valign="top" width="200"> SAML</td> <td valign="top" width="198"> Not supported</td></tr> <tr> <td valign="top" width="200"> WS-Fed</td> <td valign="top" width="198"> Supported</td></tr> <tr> <td valign="top" width="200"> OAuth</td> <td valign="top" width="198"> Supported</td></tr> <tr> <td valign="top" width="200"> WS-Trust</td> <td valign="top" width="198"> Supported</td></tr></tbody></table> <p><font color="#0000ff"></font></p> <p align="justify">In a nutshell, JWTs are the only supported token type for OAuth requests. We proceeded to extend support for JWTs to WS-Fed and WS-Trust as well. In both these protocols, there’s either configuration required on ADFS (for WS-Fed) or JWTs need to be requested explicitly (for WS-Trust). Subsequent sections describe this in further detail.</p> <h3 align="justify"><font color="#0000ff">JWT support for OAuth requests</font></h3> <p align="justify">The OAuth server implementation in ADFS on Windows Server 2012 R2 will issue only JWTs in response to OAuth authorization requests. This applies to both access tokens as well as refresh tokens issued by ADFS in response to an OAuth authorization grant request. There is no way to turn off this behavior in ADFS.</p> <h3 align="justify"><font color="#0000ff">JWT support for WS-Fed requests</font></h3> <p align="justify">By default, ADFS continues to issue SAML tokens in response to WS-Fed requests. However, you can configure ADFS to issue JWTs in response to WS-Fed requests. This configuration is done via PowerShell and is on a per-relying party basis. In other words, you can configure ADFS to issue JWT access tokens to specific applications/relying parties in ADFS.</p> <p align="justify">This is done by using the following PowerShell command.</p> <table cellspacing="0" cellpadding="2" width="555" border="1"> <tbody> <tr> <td valign="top" width="553"><font face="Courier New">PS C:\&gt; Set-ADFSRelyingPartyTrust –TargetIdentifier ‘urn:MyWebApp’ –EnableJWT $true</font></td></tr></tbody></table> <p align="justify">Once you set this, all access tokens issued by ADFS in response to WS-Fed requests for authorization to access this relying party/application will be JWTs.</p> <h3 align="justify"><font color="#0000ff">JWT Support for WS-Trust requests</font></h3> <p align="justify">You can request JWTs from ADFS in response to WS-Trust requests. This is done by crafting an RST that explicitly demands JWTs from ADFS. This is done by setting the <font face="Courier New">TokenType</font> for the RST to the value <font face="Courier New">“urn:ietf:params:auth:token-type:jwt”</font>. </p> <p align="justify">A code snippet that illustrates how to request JSON Web Tokens (JWTs) from ADFS is below:</p> <table cellspacing="0" cellpadding="2" width="558" border="1"> <tbody> <tr> <td width="556"> <p><font face="Courier New">var requestSecurityToken = new RequestSecurityToken</font>  <p><font face="Courier New">{</font>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp; RequestType = RequestTypes.Issue,</font>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp; KeyType = KeyTypes.Bearer,</font>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp; AppliesTo = new EndpointReference(&quot;urn:MyApp&quot;),</font>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp; KeySizeInBits=0,</font>  <p><font face="Courier New">&nbsp;&nbsp;&nbsp; TokenType = &quot;urn:ietf:params:oauth:token-type:jwt&quot;</font>  <p><font face="Courier New">};</font></p></p></p></p></p></p></p></p></td></tr></tbody></table> <p><font color="#0000ff"></font></p> <p><font color="#0000ff"></font></p> <p><font color="#0000ff"></font></p> <p align="justify">Note that the token response in the RSTR returned by ADFS is the Base64 encoding of the JWT. The JWT itself consists of three parts – header, body and signature separated by a “.” (i.e. a period character). You can get hold of the JWT by base64 decoding the payload that is contained within the InnerXML of the security token response to the WS-Trust call.</p> <h3><font color="#0000ff">What does a JWT issued by ADFS look like?</font></h3> <p align="justify">The following snippet illustrates a JSON Web Token issued by ADFS. This access token contains a bunch of claims that were asserted by ADFS after successfully authenticating and authorizing the user to access the relying party. </p> <p align="justify">JWTs issued by ADFS on Windows Server 2012 R2 are signed using ADFS’ issuing certificate. ADFS does not support JWT encryption.</p> <p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/37/metablogapi/image_625A5D32.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-37-metablogapi/image_5F00_625A5D32.png"><img title="image" style="display:inline;" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/03/37/metablogapi/image_thumb_0F6F4A01.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-03-37-metablogapi/image_5F00_thumb_5F00_0F6F4A01.png" width="571" height="326" /></a></p> <p align="justify">If you’ve seen SAML tokens issued by ADFS in the past, you’ll notice the shorter claim names that enable the token to be represented more compactly. These short claim names are registered with ADFS – to see the short name that corresponds to a claim, use the Get-ADFSClaimDescription PowerShell cmdlet. You can also register your custom claim descriptions and corresponding short names to be used with JWTs using the Add-AdfsClaimDescription PowerShell Cmdlet.</p> <h3><font color="#0000ff">Working with JWTs - JSON Web Token Handler for .Net</font></h3> <p align="justify">You can use the JSON Web Token Handler for .Net to parse and validate JSON Web Tokens. The JSON Web Token Handler extension for Windows Identity Foundation enables you to create and validate JSON Web Tokens (JWT) in your applications. The JWT Token Handler can be configured to run in the WIF pipeline like other built-in security token handlers, but it can also be used independently to perform token validation in lightweight applications.&nbsp; </p> <p>The JWT Handler is available for download as a NUGET package at: <a title="https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/" href="https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/">https://www.nuget.org/packages/System.IdentityModel.Tokens.Jwt/</a>&nbsp;</p> <p>Documentation for the JWT handler is available on MSDN at <a title="https://msdn.microsoft.com/en-us/library/dn205065(v=vs.110).aspx" href="https://msdn.microsoft.com/en-us/library/dn205065(v=vs.110).aspx">https://msdn.microsoft.com/en-us/library/dn205065(v=vs.110).aspx</a>&nbsp;</p> <p>That’s all for this post. Thanks for reading!</p> <p>----------------------- </p> <p>Mahesh Unnikrishnan</p>]]></content:encoded>
    </item>
    <item>
      <title>OAuth 2.0 support in ADFS on Windows Server 2012 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/maheshu/oauth-2-0-support-in-adfs-on-windows-server-2012-r2</link>
      <pubDate>Tue, 28 Apr 2015 12:01:16 GMT</pubDate>
      <dc:creator><![CDATA[Mahesh Unnikrishnan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/maheshu/2015/04/28/oauth-2-0-support-in-adfs-on-windows-server-2012-r2/</guid>
      <description><![CDATA[Hi, there! A previous post talked about the new features we’ve added to ADFS on Windows Server 2012...]]></description>
      <content:encoded><![CDATA[<p align="justify">Hi, there! A previous post talked about the new features we’ve added to ADFS on Windows Server 2012 R2. This post continues along that theme and talks about support for the OAuth 2.0 authorization framework in ADFS. </p> <p align="justify">OAuth 2.0 is an open standard created by the IETF for authorization and is documented by <a href="https://tools.ietf.org/html/rfc6749">RFC 6749</a>. The OAuth 2.0 authorization framework is <a href="https://oauth.net/2/">widely implemented across the industry</a>. </p> <h3 align="justify"><font color="#0000ff">Supported authorization grants</font></h3> <table cellspacing="1" cellpadding="2" width="492" border="0"> <tbody> <tr> <td width="254"><strong>Authorization grant type</strong></td> <td width="233"><strong>ADFS (Windows Server 2012 R2)</strong></td></tr> <tr> <td valign="top" width="254"><a href="https://tools.ietf.org/html/rfc6749#section-4.1">Authorization code grant</a></td> <td valign="top" width="233">Supported</td></tr> <tr> <td valign="top" width="254"><a href="https://tools.ietf.org/html/rfc6749#section-4.2">Implicit grant</a></td> <td valign="top" width="233">Not supported</td></tr> <tr> <td valign="top" width="254"><a href="https://tools.ietf.org/html/rfc6749#section-4.3">Resource Owner Password Credentials grant</a></td> <td valign="top" width="233">Not supported</td></tr> <tr> <td valign="top" width="254"><a href="https://tools.ietf.org/html/rfc6749#section-4.4">Client Credentials grant</a></td> <td valign="top" width="233">Not supported</td></tr></tbody></table> <p>&nbsp;</p> <h3><font color="#0000ff">Supported client types</font></h3> <table cellspacing="1" cellpadding="2" width="491" border="0"> <tbody> <tr> <td width="253"><strong>Client type</strong></td> <td width="233"><strong>ADFS (Windows Server 2012 R2)</strong></td></tr> <tr> <td valign="top" width="253"><a href="https://tools.ietf.org/html/rfc6749#section-2.1">Public client</a></td> <td valign="top" width="233">Supported</td></tr> <tr> <td valign="top" width="253"><a href="https://tools.ietf.org/html/rfc6749#section-2.1">Confidential client</a></td> <td valign="top" width="234">Not supported</td></tr></tbody></table> <p align="justify">Since ADFS on Windows Server 2012 R2 does not support confidential clients, it does not implement any client authentication method described in RFC 6749. Additionally, the ADFS server does not support the use of unregistered clients – clients that are not registered with ADFS will not be issued access tokens.&nbsp; <p align="justify">&nbsp; <h3 align="justify"><font color="#0000ff">Supported token types with OAuth 2.0</font></h3> <p align="justify">ADFS issues access tokens and refresh tokens in the JWT (JSON Web Token) format in response to successful authorization requests using the OAuth 2.0 protocol. JWTs are much easier to work with than SAML tokens and can be easily manipulated in a wide variety of programming languages. Note that ADFS does not issue SAML tokens over the OAuth 2.0 authorization protocol.</p> <p align="justify"><strong>Access Tokens:</strong> ADFS issues short-lived access tokens whose lifetime is governed by the per-Relying Party Trust setting called TokenLifetime. This defaults to 1 hour and can be configured by administrators to issue longer-lived access tokens. In line with industry-wide security recommendations, we encourage the use of short-lived access tokens.</p> <p align="justify"><strong>Refresh Tokens:</strong> ADFS issues refresh tokens in response to the authorization code grant. The refresh token lifetime is longer for workplace joined devices (i.e. up to 7 days) and is comparatively short-lived for unregistered devices (i.e. up to 24 hours). This experience is consistent with persistent SSO lifetime semantics on ADFS. Refresh tokens are encrypted and not meant for the consumption of clients.</p> <p align="justify">&nbsp;</p> <h3 align="justify"><font color="#0000ff">Registering OAuth 2.0 clients with ADFS</font></h3> <p align="justify">You can register clients with ADFS and manage them using PowerShell cmdlets. The following cmdlets can be used to do so:  <ul> <li> <div align="justify"><a href="https://technet.microsoft.com/en-us/library/dn479319.aspx">Add-AdfsClient</a> – Registers an OAuth 2.0 client with ADFS.</div> </li><li> <div align="justify"><a href="https://technet.microsoft.com/en-us/library/dn479372.aspx">Get-AdfsClient</a> - Retrieves registration information for an OAuth 2.0 client. </div> </li><li> <div align="justify"><a href="https://technet.microsoft.com/en-us/library/dn479382.aspx">Set-AdfsClient</a> - Modifies registration settings for an OAuth 2.0 client registered with AD FS. </div> </li><li> <div align="justify"><a href="https://technet.microsoft.com/en-us/library/dn479350.aspx">Enable-AdfsClient</a> - Enables the use of an OAuth 2.0 client registration by AD FS.</div> </li><li> <div align="justify"><a href="https://technet.microsoft.com/en-us/library/dn479370.aspx">Disable-AdfsClient</a> - Disables an OAuth 2.0 client that is currently registered with AD FS.</div></li></ul> <p align="justify">ADFS enables you to register multiple redirect URIs for a single client. Dynamic client registration is not supported and clients must be registered statically using PowerShell cmdlets. This provides IT administrators greater degree of control over the client applications that are registered on their ADFS server.&nbsp; <p align="justify">&nbsp; <h3 align="justify"><font color="#0000ff">Microsoft’s extensions to RFC 6749</font></h3> <p align="justify">In order to better support enterprise authorization scenarios, we have included a few extensions to the core OAuth 2.0 RFC. These are documented in the MS-OAPX (<a href="https://msdn.microsoft.com/en-us/library/dn392779.aspx">OAuth 2.0 Protocol Extensions</a>) document available on MSDN. <p>That’s it for now! I’ll cover OAuth configuration with a sample application in a subsequent blog post. <p>-----------------------  <p>Mahesh Unnikrishnan</p></p></p></p></p></p></p></p></p>]]></content:encoded>
    </item>
    <item>
      <title>What’s new in ADFS on Windows Server 2012 R2</title>
      <link>https://docs.microsoft.com/archive/blogs/maheshu/whats-new-in-adfs-on-windows-server-2012-r2</link>
      <pubDate>Thu, 23 Apr 2015 17:05:34 GMT</pubDate>
      <dc:creator><![CDATA[Mahesh Unnikrishnan [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/maheshu/2015/04/23/whats-new-in-adfs-on-windows-server-2012-r2/</guid>
      <description><![CDATA[Hi, there! Active Directory Federation Services (ADFS) is widely used federation technology that is...]]></description>
      <content:encoded><![CDATA[<p align="justify">Hi, there! Active Directory Federation Services (ADFS) is widely used federation technology that is now included in Windows Server. We’ve seen a lot of interest amongst our customers in knowing more about ADFS on Windows Server 2012 R2. In this post, I’ll introduce new capabilities we added to ADFS in the Windows Server 2012 release. </p> <p>Grab some coffee and settle down for a long read - as you can likely see, we’ve been busy.</p> <p>&nbsp;</p> <h2><font color="#0000ff">Enable users to work from anywhere on devices of their choice (BYOD)</font></h2> <h3><font color="#000000">AD Workplace Join</font></h3> <p align="justify">ADFS incudes a device registration service (DRS) that enables users to join their personally-owned BYO devices to the workplace. This self-service act makes the device known to the organization (i.e. a corresponding device object is recorded in AD). A certificate representing this trust is installed on the device. Thereafter, ADFS is able to authenticate the device when it is used to access corporate resources. Device authentication provides a seamless second factor of authentication and enables IT to make corporate resources (SharePoint portals etc.) available to users from their BYO devices. </p> <p align="justify">Workplace Join forms the foundation of our devices story and you’ll hear a lot more about it. It offers the following benefits:</p> <ul> <li> <div align="justify"><strong>Improved Single-sign on</strong> – users get longer-lived and persistent sessions on workplace joined devices. In other words, fewer password prompts. </div> </li><li> <div align="justify"><strong>Seamless MFA </strong>– device authentication provides a seamless second factor of authentication for improved security. Seamless in that end-users don’t notice it and it is handled silently by the device platform. </div> </li><li> <div align="justify"><strong>Conditional access control </strong>– IT administrators can secure corporate resources so they may be accessed only from known devices (i.e. workplace joined devices). </div> </li><li> <div align="justify"><strong>Improved audits in ADFS</strong> – audit messages in ADFS include device information for better forensics.</div></li></ul> <p><a href="https://technet.microsoft.com/en-us/library/dn280945.aspx">More information – Workplace Join.</a></p> <h3><font color="#000000">Web Application Proxy</font></h3> <p align="justify">The Web Application Proxy (WAP), a new role service under the ‘Remote Access’ role in Windows Server 2012 R2 provides an easy way to publish web applications for use outside the corporate network. Think of the WAP as a combination of the ADFS Proxy and an HTTP reverse proxy, deeply integrated with ADFS. The WAP allows you to publish applications secured by ADFS (i.e. relying parties of ADFS) to the extranet. The WAP integrates with your ADFS server (via the ADFS proxy) in order to ensure that extranet access is pre-authenticated at the edge. Users in your organization can now access SharePoint sites or browser-based applications from outside the corporate network with pre-authentication at the edge of your network. All access is subject to the access control policies you configure on your ADFS server.</p> <p><a href="https://technet.microsoft.com/en-us/library/dn280942.aspx">More information – Web Application Proxy.</a></p> <h3><font color="#000000">Change AD passwords from the extranet</font></h3> <p align="justify">ADFS now supports the ability to change the password for your AD user account. A password change page hosted by the ADFS server can be published (including from the extranet) for end-users to change their passwords. Additionally, if a user’s password has expired and they try to sign in to an application secured by ADFS, they will automatically be taken to the change password page. The user may then change their password and login using the new credentials to access the application.</p> <p>&nbsp;</p> <h2><font color="#0000ff">Enable IT administrators to manage risk to corporate resources</font></h2> <h3><font color="#000000">Built-in support for multi-factor authentication (MFA)</font></h3> <p align="justify">With previous versions of ADFS, there was no built-in support for multi-factor authentication. Some customers have reported stringing together solutions that heavily customized their ADFS setup and used third party solutions for additional authentication. With this release, we provide built-in support for multiple factor authentication. ADFS ships with a built-in multi-factor authentication method – i.e. Smartcard authentication. </p> <h3><font color="#000000">Support for Azure MFA and 3rd party MFA providers</font></h3> <p align="justify">Additionally it is also possible to use pluggable MFA providers with ADFS. A popular choice is <a href="https://azure.microsoft.com/en-us/services/multi-factor-authentication/">Azure Multi-Factor Authentication</a>, which provides a wide range of multiple factor authentication methods. Alternately, a list of <a href="https://technet.microsoft.com/en-us/library/dn758113.aspx">third party MFA providers</a> that are compatible with ADFS is available on TechNet. If you’re so inclined, you may also use our SDK to <a href="https://go.microsoft.com/fwlink/?LinkID=511980">build your own custom authentication method</a> that can plug in to ADFS.&nbsp; </p> <h3><font color="#000000">Flexible authentication policies</font></h3> <p align="justify">IT Admins now have greater control over how users are authenticated by ADFS. This is possible by configuring a global authentication policy on the ADFS server that specifies which authentication methods should be used for intranet or extranet authentication. When more than one authentication method is enabled in policy, end-users are presented with a choice on their login page. Additionally, you have the ability to force fresh authentication for sensitive applications (for example, a payroll or HR app) where the user must authenticate afresh every time they try to access the application (i.e. no SSO). </p> <h3><font color="#000000">Conditional access control</font></h3> <p align="justify">IT administrators can create policies (claim rules) that are a combination of conditions. These policies then govern access to a specific application. For instance you can choose to allow access to an application only if a user belonging to a specific group performed MFA and used a workplace joined device. Such flexible conditional access control policies can be created in ADFS and used to govern access to secured applications. With the addition of device authentication, MFA and network location awareness in ADFS you now have a rich toolkit that can be used to secure applications. </p> <p><a href="https://technet.microsoft.com/en-us/library/dn280937.aspx">More information.</a></p> <h3><font color="#000000">Global SSO revocation</font></h3> <p align="justify">IT administrators have the ability to revoke SSO that was issued in the past in order to deal with ‘breach’ events. This ensures that users are forced to re-authenticate and prior SSO is ignored by ADFS.</p> <h3><font color="#000000">Extranet soft-lockout protection</font></h3> <p align="justify">With an increasing trend to access corporate resources from the extranet, there is a risk of locking out AD accounts using password brute-force attacks. ADFS now includes the ability to configure extranet soft-lockout protection for your AD accounts. This means that authentication from the extranet will be blocked for a configurable observation window, if a configured number of bad password attempts were made. This protects the AD account from being locked out (i.e. intranet access continues to work) and provides protection against password attacks from the extranet.</p> <p><a href="https://technet.microsoft.com/en-us/library/dn486806.aspx">More information – extranet soft lockout protection</a>.</p> <h3><font color="#000000">Lost device protection</font></h3> <p align="justify">If workplace joined devices are lost or stolen, administrators now have the ability to disable or delete the corresponding device object in the directory. This ensures that ADFS revokes existing SSO for that device and protects against the misuse of lost devices in order to access sensitive corporate resources.</p> <p>&nbsp;</p> <h2><font color="#0000ff">Enable IT administrators to deploy ADFS more easily</font></h2> <p align="justify">The Windows Server 2012 R2 release marked the first time ADFS was included as an in-box Windows Server component. We’ve invested significantly to ensure that the deployment experience with ADFS is streamlined and simple for IT administrators. More information on deploying ADFS is available in the <a href="https://technet.microsoft.com/en-us/library/dn486820.aspx">ADFS deployment guide</a>.</p> <h3><font color="#000000">No more IIS, deploy on domain controllers</font></h3> <p align="justify">Older versions of ADFS were built on IIS and relied on it for their passive protocol authentication requirements (eg. SAML-P, WS-Fed). With this release, ADFS is built directly atop the Windows HTTP stack. This results in improved performance as well as the ability to deploy ADFS on domain controllers.</p> <h3><font color="#000000">Fully integrated with Server Manager</font></h3> <p align="justify">ADFS now supports full UI deployment using Server Manager, including the ability to remotely deploy ADFS on a server.</p> <h3><font color="#000000">Pre-requisite checks</font></h3> <p align="justify">The ADFS setup experience now performs pre-requisite checks prior to setting up the role. This ensures that most common environment related errors are detected prior to install. These pre-requisite checks are available in both PowerShell as well as UI-based deployment experiences. </p> <h3><font color="#000000">Group Managed Service Account (GMSA) support</font></h3> <p align="justify">First introduced in Windows Server 2012, GMSA provides the ability for a multi-node service (such as ADFS) to use a common service account that doesn’t require admin intervention for password changes. This ensures no downtime associated with changing passwords for service accounts.</p> <h3><font color="#000000">Improved SQL database support</font></h3> <p align="justify">You can configure ADFS to use a SQL database using the UI wizard, thus greatly simplifying that deployment experience. ADFS now supports SQL merge replication deployments for improved geo-redundant farm deployments. You can now configure SQL clusters in different data centers to replicate the ADFS configuration database using SQL merge replication. ADFS can be deployed across these different data centers with each ADFS farm node targeting its nearest SQL node, thus providing lower latencies and an improved experience in geo-distributed deployments.</p> <p><a href="https://technet.microsoft.com/en-us/library/dn632406.aspx">More information – SQL database support.</a> </p> <p>&nbsp;</p> <h2><font color="#0000ff">Deliver a more pleasant sign-in experience</font></h2> <h3><font color="#000000">Modern, responsive sign-in pages</font></h3> <p align="justify">The ADFS sign-in pages sport a modern look and feel consistent with that of Azure AD (seen when you sign in to Office 365). The Home Realm Discovery page sports a cleaner tiled design. When signing in to ADFS as part of a federated authentication (i.e. redirected to ADFS from Azure AD), you’ll notice the username field is automatically pre-filled for end-users. In this modern world of devices with varying form-factors, the sign-in pages automatically adjust to the available real estate by virtue of employing a responsive design.</p> <h3><font color="#000000">Automatic fallback to forms authentication on WIA incapable browsers</font></h3> <p align="justify">ADFS authentication within the intranet defaults to Windows Integrated Authentication (WIA) to deliver a seamless experience. However, if you’re using a browser that is capable only of NTLM style authentication, you end up seeing a jarring credential UI prompt. ADFS detects browsers that are incapable of WIA and will automatically fall back to using forms authentication to deliver a cleaner and more streamlined user experience. The list of user agents that are not WIA capable can be configured by IT administrators.</p> <p><a href="https://technet.microsoft.com/en-us/library/dn727110.aspx">More information – forms authentication fallback.</a></p> <h3><font color="#000000">Simple, intuitive customization experiences</font></h3> <p align="justify">Customizing older versions of ADFS required one to be a web developer. The new version of ADFS enables simpler customization using PowerShell. This makes it much easier for IT administrators to perform the following types of customization:</p> <ul> <li> <div align="justify">Set a company logo and illustration image for the login page. </div> </li><li> <div align="justify">Customize URLs for IT support, home page, privacy link etc. </div> </li><li> <div align="justify">Customize a page description message </div> </li><li> <div align="justify">Customize the web theme of the sign-in pages&nbsp; including modifying CSS. </div> </li><li> <div align="justify">Customize the error page displayed to end-user (eg. access denied pages). </div> </li><li> <div align="justify">Setup a one-click error reporting email address</div></li></ul> <p><a href="https://technet.microsoft.com/en-us/library/dn280950.aspx">More information – customizing ADFS sign-in pages.</a></p> <h3><font color="#000000">Improved Home Realm Discovery (HRD) experiences</font></h3> <p align="justify">Some customers have setup their ADFS server to federate with multiple claims providers. In previous versions of ADFS, you would see a drop down box that listed all such claims providers. This made it hard to avoid disclosing organizational relationships via the sign-in page. The following HRD improvements provide a better user experience on Windows Server 2012 R2:</p> <ul> <li> <div align="justify"><strong>HRD using organizational suffix </strong>– ADFS enables IT administrators to configure the organizational suffixes (eg. @us.contoso.com, @eu.contoso.com) supported by a claims provider. ADFS then automatically selects the right claims provider based on the UPN entered by the user in the sign-in page (eg. ‘bob@us.contoso.com’) </div> </li><li> <div align="justify"><strong>HRD filtering on a per-Relying Party basis </strong>– IT administrators can configure the claims providers that should be available for a given relying party. This removes clutter from the sign-in page and helps end users pick the right claims provider to sign-in at. </div> </li><li> <div align="justify"><strong>Bypass HRD for intranet access </strong>– Most organizations only support AD within their local intranet. This functionality provides a simple way for the admin to configure ADFS such that all intranet access defaults to the local AD claims provider for authentication.</div></li></ul> <p>&nbsp;</p> <h2><font color="#0000ff">Enable the development of modern applications</font></h2> <p align="justify">With the increased proliferation of devices, we’re seeing an increased trend towards building modern enterprise applications targeted at devices. These applications usually leverage a REST-based service/Web API that is accessed from a native application on the device. Increasingly, these applications are build on the foundation of open standards such as OAuth.</p> <h3><font color="#000000">OAuth 2.0 support</font></h3> <p align="justify">To support the development of these modern applications, ADFS includes support for the <a href="https://tools.ietf.org/html/rfc6749#section-4.1">OAuth 2.0 authorization code grant flow</a> as described in RFC 6749. ADFS issues access token using the JWT bearer profile. These tokens are essentially JSON objects that are easy to work with in a wide variety of programming languages. Additionally, ADFS also issues refresh tokens to workplace joined devices, which enables longer lived sessions (i.e. fewer password prompts) for end-users. </p> <p align="justify">The Active Directory Authentication Library (ADAL) can be used in order to write client-side applications that request access tokens from ADFS. This library is available on a wide range of platforms and makes it really easy to work with ADFS. Additionally for resource side token validation, the JSON Web Token Handler extension is available. </p> <p>&nbsp;</p> <p align="justify">That’s it for now! If you got this far, treat yourself to a cookie – hope you found something useful. Subsequent posts will have more information on these features.</p> <p>-----------------------</p> <p>Mahesh Unnikrishnan</p>]]></content:encoded>
    </item>
  </channel>
</rss>