编辑:我承认我第一次写这个问题的时候不清楚。我想我自己对这个问题并不确定,到目前为止所提供的评论和回答帮助我专注于这个问题,谢谢大家的参与。这个编辑完全重写了这个问题。期末编辑评论
在一个动态网站上,我们有两个系统--内容管理和用户界面(琐碎)。
我们正在试图决定这两个系统是否应该有单独的身份验证系统(作为两个系统,这可能会增加安全性还是不- @GlenH7 7 7?),每个系统都有自己的权限层次结构等等。
还是只有一个系统更好(毕竟是同一个数据库.加上更容易的维护),并且只使用权限(常规的,大型的,电源的,超新星,管理,问:)?
发布于 2012-07-15 08:55:55
管理员是角色,它是所有权限的超级集合,通常在这些权限之外的语义上也意味着一些特殊的内容,比如具有其他角色无法拥有的特殊权限。
具有扩展权限的常规用户仍然是常规用户,但具有附加权限并根据定义不能具有管理员的特殊权限。
这两者在逻辑上不是等价的,也不是语义上等价的,因为它们也应该是正交。
也许您真正想要定义的是一个超级用户,如果您没有任何特定的管理员只能做的事情。
无论哪种方式,我都会添加审核系统,我将尝试重用一些基于角色的身份验证和授权系统,而不是创建您自己的系统。仅在这个问题中,关注身份验证的位置就告诉我,您会发现它是错误的,而不是正确的。为什么你会认为你需要两个认证系统,两倍的工作量,两倍的改变来犯错误,两倍的失败机会,等等。
发布于 2012-07-15 14:00:30
编辑:根据你提供的额外信息,我仍然保留着我原来的答案。最初的答案如下。
即使UI和Mgmt站点的内容和URL完全不同,我也看不出有两个身份验证/授权系统对您有什么好处。在元级别上,两个站点都在处理相同的信息,并且使用相同的授权规则来确定某人是否被允许做某事。
仍然可以在同一身份验证/授权架构中建立两个权限层次结构。用户帐户可以基于您认为合适的任何树结构具有不同程度的权限和访问权限。维护帐户和它们将访问的内容也是如此。使用相同的底层来实现安全只会使您更容易构建和维护。
如果出于某种原因,您真的非常非常担心普通用户甚至知道有维护界面,那么我建议创建两个单独的站点/URL进行访问,但仍然使用相同的底层安全层。使用自己的URL创建第二个身份验证视图非常简单。这将满足“感知孤立”的要求,而不会显著增加您的工作量。
原始答案
我同意的回答,这是为了提供更多的细节背后的方法。
听起来,在您的身份验证/授权方案中,您至少需要三类用户。
开发人员提出了一个有趣的问题,即应该分配哪些权利。在某些情况下,他们需要管理员权限,这样他们就可以修复系统中的错误(对不起,双关语)。但在大多数情况下,您不希望他们以管理员身份登录,而是以高级用户或常规用户身份登录。
解决这一问题的一种方法是使用多个登录。"JoeUser“可以是他们的常规登录,当他们没有行使他们的开发人员角色,而"JoeAdmin”将是他们的管理登录。管理员登录可以触发审核/跟踪/等.但常规登录不能。
拥有两个独立的身份验证系统只会给您带来麻烦。除了贾罗德提出的理由外,这里还有几个。
因此,答案本质上是这样的:对单个身份验证/授权层进行编码。为需要管理员权限的人创建多个登录。
https://softwareengineering.stackexchange.com/questions/156880
复制相似问题