标签: security-roles

如何在Spring Security中动态决定<intercept-url>访问属性值?

在Spring Security中,我们使用intercept-url标记来定义URL的访问权限,如下所示:

<intercept-url pattern="/**" access="ROLE_ADMIN" />
<intercept-url pattern="/student" access="ROLE_STUDENT" />
Run Code Online (Sandbox Code Playgroud)

这是硬编码的applicationContext-security.xml.我想从数据库表中读取访问值.我已经定义了自己的UserDetailsService,我从数据库中读取了登录用户的角色.如何在运行时将这些角色分配给URL模式?

authorization spring-security security-roles

26
推荐指数
1
解决办法
4万
查看次数

CakePHP ACL数据库设置:ARO/ACO结构?

我正在努力在CakePHP中实现ACL.在阅读了蛋糕手册中的文档以及其他一些教程,博客文章等之后,我发现Aran Johnson的优秀教程已经帮助填补了许多空白.他的例子似乎与我在一些地方见过的其他人发生冲突 - 特别是在他使用的ARO树结构中.

在他的示例中,他的用户组被设置为级联树,最常用的用户类型位于树的顶部,并且其子节点为每个更受限制的访问类型分支.在其他地方,我经常看到每个用户类型都是相同通用用户类型的子级.

你如何在CakePHP中设置你的ARO和ACO?任何和所有提示赞赏!

php permissions acl cakephp security-roles

21
推荐指数
1
解决办法
3万
查看次数

用于层次结构树角色的Spring Security/Java EE解决方案

我知道Spring Security适用于标准角色和基于权限的授权.我不确定的是这种情况:

系统中管理着10,000名员工,员工组织成一个组织结构图(一个向各部门报告的人员树).其中一些员工是用户.这些用户仅被允许访问其职责范围内的员工(他们在树中的分支/其员工的后代).

所以我想知道现代Java EE(或其他)系统如何管理这些检查?Spring Security(ACL)可以执行此操作吗?如何对其进行建模?

我们的旧实现(多年前)是当用户访问员工时,我们可以通过递归树来检查所请求的员工是否是后代.但这不是理想的解决方案,我们希望使用新的解决方案.

java spring spring-security security-roles java-ee

15
推荐指数
1
解决办法
1884
查看次数

使用C#获取服务器和映射驱动器的ACL列表

我们IT团队的生产变更实施人员的任务是审查我们集团中所有各种对象的安全性,主要是为了确保离开我们的员工或已转移到其他团队的人员不再能够访问我们的服务器份额我们最近完成了SQL部分,我们有一个可重复使用的脚本,可以每年运行一次(或者我们提出的任何频率).它工作得很好,我们在10分钟左右的服务器上审核了20个数据库,只需几分钟.

现在,对于服务器的东西.我有一个使用.NET 2.0在C#中编写的应用程序,它将递归扫描目录列表并将ACL转储到文本文件中.这很好用.在本地机器上.UNC和映射路径不起作用,我收到以下异常消息:该进程不具备此操作所需的"SeSecurityPrivilege"权限.

在这一行:

DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All);
Run Code Online (Sandbox Code Playgroud)

其中di是从DirectoryInfo []数组枚举的DirectoryInfo对象.

我们不太可能被授予SeSecurityPrivilege特权.但是我不认为这是必要的.我可以打开文件夹并右键单击属性,然后单击安全选项卡并在GUI中查看它.我也应该能够以编程方式访问它.

有关如何更改此部分代码以获取目标文件夹权限的任何想法?

private void CheckSecurity(DirectoryInfo[] DIArray)
{
    foreach (DirectoryInfo di in DIArray)
    {
        DirectorySecurity DirSec = di.GetAccessControl(AccessControlSections.All);
        string sAccessInfo = string.Empty;

        foreach (FileSystemAccessRule FSAR in DirSec.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
        {
            sAccessInfo += GetAceInformation(FSAR);
        }

        if (sAccessInfo != string.Empty)
        {
            // Write info to text file
        }
    }
}

private string GetAceInformation(FileSystemAccessRule ace)
{
    StringBuilder info = new StringBuilder();
    string line = string.Format("Account: {0}", ace.IdentityReference.Value);
    info.AppendLine(line);
    line = string.Format("Type: {0}", …
Run Code Online (Sandbox Code Playgroud)

.net c# security permissions security-roles

14
推荐指数
1
解决办法
1万
查看次数

用户分配了sql azure角色

我正在努力确保为所有用户分配了特定角色.是否有任何视图或SQL查询来获取此信息?

sql security-roles azure-sql-database

14
推荐指数
2
解决办法
5656
查看次数

CloudKit安全角色和权限如何工作?

CloudKit中有三个默认安全角色:

  • 世界
  • 经过身份验证
  • 创造者

还有三个权限:

  • 创建
  • 读
  • 写

这些安全角色和权限如何工作?

以下是我希望通过对安全角色的解释来回答的一些问题的示例:

  • 这三个角色是什么意思?前两个似乎很明显,但最后一个似乎不那么明显.例如,Creator是指表格的创建者还是记录的创建者?
  • 删除许可在哪里?写?
  • 安全角色可以应用于个人记录吗?(例如,我希望用户只能访问InstantMessages表中的一部分记录:他们发送的记录以及他们收到的记录.这种性质可以通过安全角色完成吗?)
  • 权限是继承的吗?(例如,创建者是否获得了创建者,经过身份验证和世界授予的所有权限?)
  • 权限纯粹是添加剂吗?或者我可以创建一个自定义角色,删除权限而不是添加权限吗?(例如,为了创建"禁止用户"安全角色.)
  • 如何在用户上设置角色?我可以为每个创建的用户设置默认角色吗?我可以通过编程方式更改用户的角色吗?
  • 如何创建新的安全角色?我可以通过编程方式创建/更新它们吗?

security permissions security-roles cloudkit

10
推荐指数
1
解决办法
1782
查看次数

用于分配用户角色的首选数据库设计方法?(帽子与团体)

我有一个中等大小的MySQL数据库,带有一个主要的"人员"表,其中包含有关连接到剧院和剧院学校的每个人的基本联系信息,我负责维护和开发许多Web应用程序.

有些人只是联系人 - 也就是说,他们的"人"表记录是我们需要存储的所有信息.许多其他人必须能够为各种系统承担不同的角色.其中,大部分都是以学生身份开始的.一些人从员工开始.作为学生的人可以成为实习生或表演者; 员工可以成为学生; 所有教师都是员工和表演者等.

从本质上讲,它们是各种不同的"帽子",任何个人可能必须佩戴这些"帽子"才能访问系统的不同部分并与之交互,并且在我们网站的公共页面上提供有关它们的信息.

我实现这个模型的选择是有几个表代表这些"帽子"的表 - 包含元信息的表,以补充基本的"人"信息,所有这些都使用"人物"id作为他们的主键.例如,作为教师的人在教师表中具有包含他或她的简短传记信息和工资率的记录.所有教师也是员工(但并非所有员工都是教师),这意味着他们在员工表中有一个记录,允许他们将工作时间提交到我们的工资单系统中.

我的问题是,实施模型有什么缺点?我能想到的唯一另一个选择是为人员表填充对于大多数条目都是空的和无用的字段,然后有一个人们可以归属的"组"的繁琐表格,然后几乎每个表都有系统有一个人person_id外键然后依赖业务逻辑来验证引用的person_id属于适当的组; 但那是愚蠢的,不是吗?

下面是一些示例表声明,希望能够展示我目前如何将所有这些结合在一起,并希望说明为什么我认为这是一种更合理的方式来模拟系统必须处理的各种情况的现实.

欢迎提出任何建议和意见.我很感激你的时间.

编辑一些受访者提到使用ACL进行安全性 - 我在原始问题中没有提到我实际上使用单独的ACL包来为不同系统的实际用户进行细粒度访问控制.我的问题更多的是关于在数据库模式中存储有关人员的元数据的最佳实践.

CREATE TABLE persons (
    `id`            int(11) NOT NULL auto_increment,
    `firstName`     varchar(50) NOT NULL,
    `middleName`    varchar(50) NOT NULL default '',
    `lastName`      varchar(75) NOT NULL,
    `email`         varchar(100) NOT NULL default '',
    `address`       varchar(255) NOT NULL default '',
    `address2`      varchar(255) NOT NULL default '',
    `city`          varchar(75) NOT NULL default '',
    `state`         varchar(75) NOT NULL default '',
    `zip`           varchar(10) NOT NULL default '',
    `country` …
Run Code Online (Sandbox Code Playgroud)

sql roles security-roles

7
推荐指数
2
解决办法
6005
查看次数

Spring拦截url配置中ROLE_USER和ROLE_ANONYMOUS有什么区别?

在Spring拦截url配置中ROLE_USER和ROLE_ANONYMOUS之间有什么区别,例如下面的示例?

<http auto-config="false" access-decision-manager-ref="accessDecisionManager"
    use-expressions="true">
    <intercept-url pattern="/admin/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/login/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="${application.secureChannel}" />
    <intercept-url pattern="/error/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/register/**" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="${application.secureChannel}" />
    <intercept-url pattern="/" access="hasRole('ROLE_ANONYMOUS')"
        requires-channel="http" />
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')"
        requires-channel="http" />
    <form-login login-page="/login" login-processing-url="/login/submit"
        authentication-failure-url="/login/error" />
    <logout logout-url="/logout" />
</http>
Run Code Online (Sandbox Code Playgroud)

java authentication spring-security security-roles

7
推荐指数
1
解决办法
1万
查看次数

LDAP授权

对于某些现有系统,我开始使用LDAP实现授权和认证机制.在开发阶段,我面临着一个艰难的设计决策:用户角色应该存储在哪里?

如果我使用RDBMS,看起来会有三个表:user,role和user_role来映射角色和用户.

请提供可用的解决方案 我考虑将用户角色存储在LDAP中的用户角色和用户,但不确定这是否是最佳解决方案.我使用JBoss作为我的应用程序服务器.

authentication authorization roles ldap security-roles

7
推荐指数
1
解决办法
7684
查看次数

为什么我在jdbcRealm数据库中列出web.xml中的安全角色?

我在Glassfish 3上运行JavaEE 6 Web应用程序.我使用JAAS和jdbcRealm以及默认主体到角色映射.在我的数据库中,我有用于将用户名映射到其角色的表:

 username | role
----------+-------
 john     | admin
 mary     | user
Run Code Online (Sandbox Code Playgroud)

为什么我需要再次在我的列表中列出这些角色web.xml?

<security-role>
  <role-name>admin</role-name>
</security-role>
<security-role>
  <role-name>user</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

没有它isUserInRole()总是返回false.

java security-roles jaas java-ee

7
推荐指数
1
解决办法
1万
查看次数