我正在接近一个新项目,我正在权衡使用MVC5和Identity through OWIN。
我正在运行脚手架项目,为其提供实体框架用户数据库,注册/登录等。没有第三方或两个因素。
根据我目前的理解,OWIN安全是基于cookie的,现在,我已经涉足Web几年了,但我的印象是身份和声明应该存储在会话中。
我正在检查用户登录时设置的cookie,并设置了各种声明。我实际上不知道底层框架做什么,我正在努力找出:
- 是否有技术环节?不是关于如何实现接口和设置,而是关于安全性和最佳实践。
- 实际上是什么在这个cookie,我怎么能检查与EditThisCookie是什么设置?是加密的还是模糊的?
- 如何比会话更安全? 如果有人,以某种方式得到这个cookie,他们基本上可以作为相同的用户登录吗?
- 这个有刻度吗?通常情况下,多个前端会与同一个会话服务器通信。
我们有很多样品供您试用。https://github.com/AzureADSamples
回答你的一些问题:
这个cookie中实际是什么,我如何使用EditThisCookie检查设置了什么?认证成功后,用户的身份被存储在包含用户身份的cookie中。
是加密的还是模糊的?默认情况下,cookie是加密和签名的。这怎么比session更安全?
如果有人,以某种方式得到这个cookie,他们基本上可以作为相同的用户登录吗?除非Channel绑定生效,否则可以。
这个尺度吗?通常情况下,多个前端会与同一个会话服务器通信。我们发现它是有规模的。使用SymmetricKey加密,速度快。
可以选择使用缓存而不将细节放在网络上。这需要分布式缓存,而大多数开发人员似乎并不想这样做。