通过Active Directory保护数据库记录

时间:2014-07-15 17:25:23

标签: asp.net security webforms active-directory

此问题是我之前提问的延伸。先前的问题使用类似的方法,但仅使用活动目录来填充cookie或会话变量,这仅对填充下拉列表等简单事项有用。在这里,我将扩展该方法来填充数据库表。扩展方法提供了一种通过在数据库中创建连接来保护数据的技术。

请评论这是否是通过活动目录保护数据库数据的“好方法”。

场景需要创建用于提交的应用程序&查看将由50所学校使用的事故报告。该应用程序需要一种安全机制来防止员工查看不在其学校的数据。一些员工将被分配到多所学校。 IT部门希望为Active Directory中的每个学校创建一个安全组,以控制对应用程序及其数据的访问。

Active Directory问题 如果不使用Active Directory,我只需创建一个名为UserSchool的数据库表,该表将存储用户名和SchoolID。这样可以非常简单地编写返回仅与用户学校相关的数据的查询。我只需要在我的存储过程中为UserSchool表添加一个连接。

可能的解决方案此解决方案旨在充分利用这两个方面。安全性将通过Active Directory进行管理。当员工登录应用程序时,将从Active Directory填充UserSchool表。

  1. 在Active Directory中创建名为AccidentReportingSchools的OU。
  2. 在AccidentReportingSchools OU中为每所学校创建一个安全组。
  3. 向每个安全组添加一个名为SchoolID的属性,该属性对应于名为schools的表的主键。
  4. 创建一个名为UserSchools的表,该表将包含Username和SchoolId字段。
  5. 当员工登录应用程序时,删除语句,例如DELETE FROM UserSchools WHERE UserName = @UserName。
  6. 运行delete语句后,将使用UserName和SchoolID填充表,该名称将从Active DIrectory安全组中获取。

0 个答案:

没有答案