ADFS 2.0,如何清除凭据缓存



我遇到这个问题很长一段时间,找不到解决方案。一开始是我的网站使用ADFS 2.0无法登录,即使正确的登录url已经打开。我还以为是饼干没清理干净。之后,我发现可能是ADFS服务器的问题。

I have try:

  1. 停止iis服务器,所以我没有我的网站,只是测试adfs.
  2. 清除我的浏览器cookie。关闭和重新打开。所以是干净的。
  3. 直接登录adfs,例如:https://mydomain/adfs/ls/?wtrealm=mysite&wa=wsignin1.0,这里我得到的用户名和密码弹出窗口。
  4. 直接登出:https://mydomain/adfs/ls/?wtrealm=mysite&wa=wsignout1.0
  5. 清空浏览器cookie
  6. 尝试再次使用url从3登录。我登录了,没有看到任何弹出窗口。在浏览器开发工具。我看到重定向到我的网站。

我使用Fiddler捕获流量,似乎身份验证正在使用NTLM。看起来浏览器从某处获得了凭证(不是在确认的cookie中)。让弹出窗口返回的唯一方法是关闭浏览器进程,并重新打开登录url。有人知道怎么让它真正签到吗?

这是因为您的公司内部的ADFS服务使用windows集成身份验证,并使用ADFS服务的新AD服务票证无缝地为您签名(技术上是另一种身份验证)。这与拥有一个支持windows集成身份验证的IIS web应用程序没有什么不同。

如果你从外联网访问,你不会看到这个。

在某些情况下,您关心的是获得用户交互登录。方法是(这里选择2012R2)

  1. 在ADFS服务上配置MFA,对于应用程序,需要MFA。这将无缝地让您登录,但提示第二个因素
  2. 增强(更高的安全性)忽略任何SSO (web SSO默认为8小时),并在应用程序上设置'AlwaysRequireAuthentication'标志。

这在ADFS 2016中变得更好,我们支持WS-Fed或OAuth/OpenIDConnect上的prompt=login,这甚至会忽略Windows的SSO模式。

希望有帮助。

谢谢//Sam (Twitter: @MrADFS)

最新更新