使用grails-spring-security核心/ ldap实现的另一个新手问题 . (Grails 2.4.4 spring-security-core-2.0.0 spring-security-ldap-2.0.1)
我已经设置了一个openLdap服务器(本地用于测试),并且从我的grails应用程序,经过身份验证的用户只有LDAP,没有数据库存储用户/角色信息,所有内容都来自LDAP(无论如何都是这个要求)
到目前为止,我已经通过他们的UID和密码验证所有ldap用户了,接下来的步骤是,如何通过ldap组进一步限制用户?
为了清楚起见,我的LDAP结构现在看起来像这样:
domain01, com
- Groups
- group01 (member: user01, user02)
- group02 (member: user03, user04, user05)
- superUsers
- Users
- user01
- user02
- user03
- user04
- user05
现在我的所有用户01~05都可以使用他们的密码登录 . 如何配置以便只有group01(user01和02)下的用户才能登录?假设:
-
我不关心提供更多粒度的只读角色等,只是登录成功或失败 .
-
所有用户01~05都没有'memberOf'属性,此信息仅在Groups条目中(这就是corp LDAP的设置方式) .
我在Config.groovy中尝试过这个,但我猜它没有按照我的想法做到:
grails.plugin.springsecurity.ldap.authorities.groupSearchBase = 'cn=group01,ou=Groups,dc=domain01,dc=com'
请帮忙!
1 回答
我想到了 .
在我的Config.groovy中需要这些:
在进行身份验证后,用户角色将从LDAP分组推断为“ROLE_GROUP01” . 前缀'ROLE_'和up-case是自动的,但如果需要可以使用其他配置设置进行更改(我不介意) .
然后,在Config.groovy中,控制用户可以使用interceptUrlMap访问的内容:
您可以使用自己的URL映射来控制访问的粒度 .