注销后如何放弃Azure App Service会话

时间:2019-05-31 13:19:11

标签: c# azure-active-directory

我有一个简单的ASP.NET应用程序,它被部署为Azure App Service。应用程序具有aad作为身份验证方法。

身份验证是使用"Express" management mode在Azure门户中配置的(没有用于身份验证的代码,只是门户配置)。身份验证本身运行良好。

问题是,从应用程序注销后,服务器会话保持唤醒状态,并且用户可以使用先前使用的AppServiceAuthSession cookie值对应用程序进行身份验证访问。

以下过程显示了如何使用先前保存的AppServiceAuthSession值访问经过身份验证的数据。

  1. 使用aad登录应用程序(浏览https://myapp.azurewebsites.net-> Azure AD登录->没问题)
  2. cookie的存储值:AppServiceAuthSession
  3. 通过浏览至https://myapp.azurewebsites.net/.auth/logout
  4. 登出
  5. 使用以下样式使用先前存储的cookie值执行http get:curl --cookie "AppServiceAuthSession=[value]" -X GET https://myapp.azurewebsites.net
  6. 使用以前使用的cookie值检索索引页。

如何防止这种情况,以及注销时如何正确放弃所有会话数据?

1 个答案:

答案 0 :(得分:1)

“防御”这一点没有道理。

攻击者已经破坏了用户的浏览器,并可以访问其中存储的cookie。根据定义,此cookie是一个秘密,可证明HTTP客户端的身份。如果攻击者已经可以访问它,则他们已经可以选择的多种方式使用它,您将无法阻止或与真正访问服务器的真实用户区分开。

唯一真正的解决方案是使用HTTPS

参考:

https://en.wikipedia.org/wiki/Session_hijacking

https://en.wikipedia.org/wiki/HTTPS