0
我有一个使用Azure ADFS和Azure ACS进行身份验证的MVC应用程序。当用户首次登录时,他们将被重定向到Azure ASC进行身份验证。成功完成后,用户将通过令牌重新回到站点,并且可以正常使用系统。Azure ACS在登出后不强制重新进行身份验证
当用户注销时,他们被重定向到注销页面,然后返回到原始登录屏幕。问题是,当他们再次点击登录链接时,它会自动再次登录用户,而不需要他们重新进行身份验证。这意味着,这是不可能改变用户在不关闭浏览器,如果用户离开浏览器窗口打开的任何人都可以单击登录链接并登录为用户
我的注销代码如下:
public void Logout()
{
var fc = FederatedAuthentication.FederationConfiguration.WsFederationConfiguration;
var signOutMessage = new SignOutRequestMessage(new Uri(fc.Issuer), fc.Realm);
FederatedAuthentication.WSFederationAuthenticationModule.SignOut(signOutMessage.WriteQueryString());
}
和signOutMessage.WriteQueryString()
生成以下内容:
https://myacsnamespace.accesscontrol.windows.net/v2/wsfederation?wa=wsignout1.0&wreply=http%3a%2f%2flocalhost%3a44301%2f
有我在ACS配置不正确的东西,或者是我的代码缺少的东西。我无法弄清楚如何自动停止重新认证旧用户
等待,因为“计算机”何时将登录凭据传递给浏览器? IE也许这样做,但是我希望Firefox和Chrome不会。 – mxmissile
它更像是在您的网络服务器上使用Windows身份验证。这也是自动发生的。我不知道每种情况下发生的事情的确切流程。我只能确定(因为我们使用它),无论浏览器如何,它都以这种方式工作。我*假设*在服务器和客户端之间进行某种身份验证协商。在域内,这是通过单向和域外adfs服务器切换到http基本身份验证的方式完成的... –
我认为您指的是Azure ADFS何时与本地活动目录集成。我们的系统并非如此。用户必须使用ACS以与其Windows登录无关的用户名登录。 – Neil