我们目前的Intranet环境是有点过时。当前堆栈具有被查询针对SQL 2000数据库ASP.NET 1.1 / 2.0的应用程序。

有关角色的安全性,有用户加入到(所以需要加入到该组的测试和生产的机器上)的服务器上的用户组。这些用户组同步到上SQL 2000本身的用户角色。角色被授予根据需要,以防止任何访问违规执行权限存储过程。

在Web应用程序级别,我们使用基本身份验证(验证这对我们的Active Directory)和有身份的模拟打开。连接字符串到数据库使用集成安全性。这产生了Web应用程序连接到数据库的用户登录,这将强制执行存储过程的数据库安全调用的环境。它也允许我们使用典型User.IsInRole()方法来应用程序本身内执行授权。

有几个问题这一点。第一个是,只有我们的服务器管理员可以访问计算机上的用户群体,所以更新角色的安全性,或添加其他用户超出了应用程序管理员的手中。此外,为了获得角色的唯一方法是调用名为“xp_logininfo”这是在2005年SQL锁定虽然我不知道的全部细节一个SQL过程,我们的DBA告诉我们,这个一般模型不玩了漂亮的给定模式中的较新版本的SQL性质的2005年。

我们正处在一个点,现在我们已经准备好更新我们的环境。我们编写.NET 3.5的应用程序以利用更多的AJAX和SQL Server 2005是我们数据库中的主环境。我们希望更新的安全模型,以及要为应用程序管理员提供更灵活一点,并有可能利用Active Directory的详细。

一个问题,我们也一样是给定用户将极有可能访问多个应用程序,因此有某种集中的解决方案是最佳所以在需要的时候,我们可以很容易地删除用户。

什么被认为是在这种环境的维护作用安全的最佳做法是什么?

有帮助吗?

其他提示

我不认为关系到决策的考虑因素,其中前做出改变了那么多。

关于架构的评论,那些只会帮助您组织的数据库元素,这样你就可以将权限分配给所有的架构内,而不必配置每个程序/表。

涉及是否具有识别流下来到SQL Server,而不是使用受信任的subsytem模型,是非常具体的特定情况作出的决定。这就是说,我不喜欢流标识这样的,因为通常还有关于这意味着SP很可能执行部分规则的应用被强制执行的逻辑。因为这个原因,即方法也推动有更多的逻辑在存储过程中。

关于仅具有在机器访问用户组管理员,考虑看着ADAM(活动目录应用模式)。我不知道它是否支持与SQL Server集成,所以我不知道这是否会与建筑工作。所以,应该查虽然。

对于不能够得到角色,根据您的信息,我会假设有用户群和参与数据库角色之间有密切的关系。你可以得到组(角色)的用户在Active Directory中。

底线:评估ADAM如何适应您的方案,并参与到使用当前的身份流程的方法,考虑是否依然存在。另外不要忘了考虑改变应用程序的标识流项目的影响。

尝试重构你的设计以这样一种方式,你的资料库本身是LDAP。所以基本上你的用户和角色对象映射AD对象。然后,您可以拥有完全的控制,而不是通过各种系统管理员去。当然,这取决于代码的状态,这是不容易的。但开出的最好办法就是创造概念的小证据来完成这个映射你的业务对象的公元。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top