【发布时间】:2010-09-12 08:36:16
【问题描述】:
前提条件:有一个利用 ASP.NET 安全模型的 Web 应用程序。还有一个 Active Directory (AD) 集成组件。它提供 AD 用户和角色,就好像它们是应用程序自己的用户和角色一样。 AD 用户和 AD 角色之间的“角色中”等关系当然存储在 AD 域中,但由 Web 应用程序缓存。
问题:假设 AD user1 是 AD role1 的成员。当 Web 应用程序启动时,它会缓存此关系。现在,如果 AD 管理员使用 AD 控制台从 role1 中删除 user1,则应用程序不知道此更改 - 缓存条目被保留。这成为一个安全漏洞,因为角色 1 可能拥有用户 1 不应再拥有的权限。
有两种相反的意见如何解决这个问题:
- “监听”AD 更改并在 AD 服务器上检测到操作后触发缓存条目删除 - 因为我们负责正确的 AD 组件运行
- 保持缓存不变 - 因为我们没有将条目放在那里,也不应该将其删除
在这种情况下,正确的做法是什么?为什么?
谢谢!
【问题讨论】:
标签: .net asp.net security caching active-directory