【发布时间】:2016-05-26 13:35:13
【问题描述】:
我正在尝试编写一个 WPF 客户端,它使用 ADAL 在 Windows Server 2012 R2 上针对 ADFS 进行身份验证。我已经使用“表单身份验证”成功实现了这一点,其中提示用户输入域用户名和密码。但是,我想利用 SSO 并使用当前登录的域用户对 ADFS 进行身份验证。
很遗憾,我只收到一条错误消息:
“
”不支持此方法重载
我做了很多搜索,但发现一些信息相互矛盾:
这篇关于 Windows 应用商店应用程序的 SO 帖子(与 WPF 有什么不同?)其中 Vittorio Bertocci 链接到有关如何实现它的博客: ADAL for Windows Store SSO
此 SO 帖子 Vittorio Bertocci 声称静默身份验证仅适用于 Windows Server 2016: Authenticate with ADFS inside Console App silently
是否需要 Windows Server 2016 才能与 ADAL 一起执行 SSO? 还有其他方法吗?
编辑:
升级到 ADAL 的最新 alpha (3.9.302111717-alpha) 后,我收到了更详细的错误消息
MSIS9611:授权服务器不支持请求的“grant_type”。授权服务器仅支持“authorization_code”或“refresh_token”作为授权类型。
我正在执行的代码是这样的:
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());
我能够使用 WS-Trust 实现一个可行的解决方案,因此我确信我正在运行的机器具有隐私设置,使应用能够找到当前登录的用户。
另外,我的全局身份验证策略是这样设置的:
【问题讨论】:
标签: single-sign-on adfs adal adfs3.0