Grails spring security LDAP 从 LDAP 基础获取 ROLE
Posted
技术标签:
【中文标题】Grails spring security LDAP 从 LDAP 基础获取 ROLE【英文标题】:Grails spring security LDAP get ROLE from LDAP base 【发布时间】:2018-03-02 07:30:05 【问题描述】:我有一个带有 spring security LDAP auth 3.0.2 的 grails 3.2.5 应用程序。我需要从 LDAP Base 获取角色。
application.yml
plugin:
springsecurity:
#LDAP configuration
logout.postOnly: false
securityConfigType: 'InterceptUrlMap'
debug:
useFilter: true
#useBasicAuth: true
providerNames: ['ldapAuthProvider', 'anonymousAuthenticationProvider']
ldap:
context:
managerDn: '****'
managerPassword: '**password**'
server: 'ldap://**my server**'
authorities:
ignorePartialResultException: true # typically needed for Active Directory
groupSearchFilter: 'member=0' # Active Directory specific - the example settings will
retrieveGroupRoles: true # to get Roles from LDAP
groupRoleAttribute: 'cn'
search:
base: DC=HQ,DC=ROOT,DC=AD
filter: 'sAMAccountName=0' # for Active Directory you need this
searchSubtree: true
attributesToReturn: ['mailNickName','name','mail','extensionAttribute13','extensionAttribute14','extensionAttribute15','company'] # extra attributes you want returned
auth:
hideUserNotFoundExceptions: false
在文档中我发现我需要在application.yml
中设置“retrieveGroupRoles: true”,但是如何查看用户的角色?
您能告诉我如何在控制台或视图中显示用户角色以进行测试吗?我可以通过从 LDAP 中的用户列获取用户角色来重新定义(默认角色从 ldap 'cn' 获取)用户角色吗?
谢谢。
【问题讨论】:
【参考方案1】:将以下服务注入您的控制器:
def springSecurityService
然后访问以下角色:
def roles = springSecurityService.getPrincipal().getAuthorities()
此外,当您使用 application.yml 时,您应该像这样指定您的 providerNames 而不是列表样式:
providerNames:
- ldapAuthProvider
- anonymousAuthenticationProvider
attributesToReturn 也是如此:
attributesToReturn:
- mailNickName
....
【讨论】:
我做到了,并在控制台中 println,但它显示“[]”符号(空)。信息:我有自定义 userDetail,它写在 spring-security-ldap 文档链接第 2.3 段中。我可能需要在自定义 userDetail 中添加角色吗? 一定要在一个组中检查你的,LDAP 管理员很适合这方面的事情ldapadmin.org 用其他观察更新答案 非常感谢你是对的。我在 LDAP 基础中没有角色。 我找到了您关于grails ldap 的答案,它在任何地方都对我有帮助。非常感谢,问题已解决。以上是关于Grails spring security LDAP 从 LDAP 基础获取 ROLE的主要内容,如果未能解决你的问题,请参考以下文章
Grails - grails-spring-security-rest - 无法从 application.yml 加载 jwt 机密
grails-spring-security-rest 插件和悲观锁定