SSO from ADAL in WPF Client to ADFS 3.0 on Windows Server 2012 R2
<p>I am trying to write an WPF client which uses ADAL to authenticate against ADFS on a Windows Server 2012 R2. I have successfully implemented this using "Forms Authentication" where the user is prompted for the domain username and password. However, I want to take advantage of SSO and use the currently logged on domain user to authenticate against the ADFS.</p>

<p>Unfortunately, I'm only getting an error message saying:</p>

<blockquote>
  <p>This method overload is not supported by '&lt; ADFS servername>'</p>
</blockquote>

<p>I have done a lot of searching, but find some of the information contradictive:</p>

<ul>
<li><p>This SO post about a Windows Store App (any differences to WPF?) where Vittorio Bertocci links to a blog on how to achieve it:
<a href="https://stackoverflow.com/questions/25865260/adal-for-windows-store-sso">ADAL for Windows Store SSO</a></p></li>
<li><p>This SO post where Vittorio Bertocci claims that silent authentication is only possible with Windows Server 2016:
<a href="https://stackoverflow.com/questions/34771145/authenticate-with-adfs-inside-console-app-silently">Authenticate with ADFS inside Console App silently</a></p></li>
</ul>

<p>Is it a fact that Windows Server 2016 is required to perform SSO in conjunction with ADAL?
Is there any other way to do it?</p>

<p><strong>EDIT</strong>:</p>

<p>After upgrading to the latest alpha of ADAL (3.9.302111717-alpha) I'm getting the more detailed error message</p>

<blockquote>
  <p>MSIS9611: The authorization server does not support the requested 'grant_type'. The authorization server only supports 'authorization_code' or 'refresh_token' as the grant type.</p>
</blockquote>

<p>The code I'm executing is this:</p>

<pre><code>string authority = "https://myServer.com/adfs";
string resourceURI = "http://myApp/";
string clientId = "XXXX-XXX-XXXX-XXXX-XXXXX";
string clientReturnUri = "http://anarbitraryreturnuri/";

var ac = new AuthenticationContext(authority, false);
var token = await ac.AcquireTokenAsync(resourceURI, clientId,new UserCredential());
</code></pre>

<p>I was able to implement a working solution using WS-Trust, so I am confident that the machine I'm running on has the privacy settings to enable the app to find the currently logged on user.</p>

<p>The Oauth2 endpoint looks as follows:
<a href="https://i.stack.imgur.com/wBeOu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/wBeOu.png" alt="OAuth2 endpoint configuration"></a></p>

<p>Also, my global authentication policy is set up like this:</p>

<p><a href="https://i.stack.imgur.com/7z148.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/7z148.png" alt="Global Authentication Policy settings"></a></p>