问题标签 [spring-security-ldap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-security - 从 LdapAuthoritiesPopulator 内部查找 LDAP 条目
我正在使用 Spring Security 并spring-security-ldap
在 Spring Boot 应用程序中进行身份验证。
我想实现一个LdapAuthoritiesPopulator
从 LDAP 服务器中查找一些条目来决定用户角色的方法。这些条目不在用户之下,所以userData
提供给getGrantedAuthorities
方法的对象是不够的。(我无法控制 LDAP 服务器,因此无法将角色添加到用户条目)。
我考虑将ContextSource
调用时创建的 Spring Security注入auth.ldapAuthentication().contextSource()
(参见下面代码中的 (1))到LdapAuthoritiesPopulator
. 但这不起作用,因为LdapAuthoritiesPopulator
是在 之前创建的WebSecurityConfigurerAdapter
,所以ContextSource
还不存在。
我的WebSecurityConfigurerAdapter
包含以下方法:
ldapAuthoritiesPopulator
是自动装配的,该类目前是一个虚拟实现,只需添加ROLE_USER
:
spring-security - spring security ldap 附加属性
我想向 userdetail 对象添加一些额外的 ldap 属性(实际上只有一个)。似乎唯一的方法是覆盖 usercontextmapper 类,然后涉及在其中扩展个人类和本质类。仅仅添加一些额外的属性似乎有点太多的工作。在追求这条路线之前,我想确保没有另一种更简单的方法可以实现这一目标。
基本上,我在 ldap 中有一个名为“collections”的属性,我希望它可以在我的应用程序中的 Principal 对象上使用。
谢谢
java - 使用 java config 在单个应用程序中使用多种身份验证机制
目前,我的应用程序中有一个单一的身份验证机制,即使用 LDAP 进行身份验证和授权。我的安全配置如下所示
但在某些情况下,用户可能会带着一个会话令牌进入,该令牌可以从会话密钥服务器进行身份验证,并且有效令牌返回一个用户名,然后可以使用该用户名从 LDAP 为该用户加载授权信息。因此,我的第二个身份验证机制应该首先发生,如果 HTTP 标头中存在会话令牌,它应该执行令牌身份验证,然后执行 ldap 查找,如果不存在会话令牌,它应该只属于当前身份验证机制。如何添加第二层身份验证。
grails - 具有多个 Active Directory 服务器的 Grails Spring Security LDAP 插件
我有 Grails Spring Security 插件连接到一个 Active Directory 服务器没有问题。但是,我需要连接到多个服务器。我们有一些用户在一个 AD 服务器上,而其他用户在不同的服务器上,所以我们需要尝试在这两个位置寻找用户。
例如,在 Java 中,我的工作如下:
在 Grails 中,我可以配置一个 AD 服务器,但无法弄清楚如何配置多个:
我知道您可以创建一个以空格分隔的服务器列表,但这对我不起作用,因为它只会在连接后尝试其中一个服务器,而我需要它来尝试在两者中查找用户。
我想我可能需要陷入 resources.groovy 文件,但不知道从哪里开始 - 有没有人配置多个 AD 位置?
我唯一的另一个想法是创建一个虚拟目录,将所有用户聚集在一个目录中。任何人都可以建议这样做的好方法吗?我一直在看http://myvd.sourceforge.net/usecases.html
任何帮助,将不胜感激。整天都在谷歌上搜索,我离解决方案还差得远。
spring-security - Spring Security LDAP 身份验证错误 - 身份验证异常而不是密码锁定
我已经使用以下配置设置了 ldap 身份验证。我需要用户使用 LDAP 数据存储进行身份验证,并且我已将 pwdMaxFailure 设置为 2。
身份验证工作正常,但是每次我使用错误的密码登录时,我都会收到以下异常,而不是密码锁定异常。我认为 Spring LDAP 在验证用户身份时不会检查 PwdPolicy(计算密码尝试)。
ne = (javax.naming.AuthenticationException) javax.naming.AuthenticationException:[LDAP:错误代码 49 - INVALID_CREDENTIALS:绑定失败:ERR_229 无法验证用户 cn=admin,ou=users,o=organisation]
我的 LDIF 文件是
dn: cn=admin,ou=users,o=organization objectClass: inetOrgPerson
objectClass: organizationalPerson objectClass: person objectClass: top cn: admin sn: Admin uid: admin userPassword:: e1NTSEF9bEtlTUNzLy9OK1JsV2hCWEM2U2ZZNDh0Lzd0OHBlbjFrdjkxN3c9P Q==
createTimestamp: 20141003000008.689Z creatorsName: 0.9.2342.19200300 .100.1.1=admin,2.5.4.11=system entryCSN: 20141020004319.002000Z#000000#001#000000 entryDN: cn=admin,ou=users,o=organization entryParentId: 8204b2df-ff5a-413a-a063-4ac30d35bee4 entryUUID:: N2I1MTFlNjYtMDhjZS00YjA3LWIxYzItNTkyOTI3ZGE3ZTBi modifiersName: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system modifyTimestamp: 20141020004319.002Z pwdFailureTime: 20141020003207.120Z pwdHistory:: MjAxNDEwMDMwMDAwMDguNjgxWiMxLjMuNi4xLjQuMS4xNDY2LjExNS4xMjEuMS4
0MCM4I1lXUnRhVzQ9 pwdPolicy子条目:cn=default,ou=pwdPolicy,o=组织dn: cn=default,ou=pwdPolicy,o=organization objectClass: 设备
objectClass: pwdPolicy objectClass: top cn: default
pwdAttribute: userPassword pwdExpireWarning: 3600 pwdGraceExpire: 1 pwdLockout: TRUE pwdLockoutDuration: 120 pwdMaxAge: 2592000
pwdMaxFailure: 2
而spring配置文件如下
spring-security - Spring Security Java Config 多组搜索库
我正在使用带有 Java 配置和 LDAP 身份验证/授权的 Spring Security 3.2.5。
我们需要在 LDAP 中的两个独立树中搜索组。
ou=组
和
ou=组,ou=webapps,ou=应用程序
我已经搜索并且无法找到有关此主题的任何信息。
这是我当前运行良好的代码:
我想做这样的事情:
可以理解的是,这是行不通的。
有人对从哪里开始有任何指示吗?
grails - ldap.rememberMe.usernameMapper.userDnBase(多个实例?)(searchSubtree 搜索能力)
我有一个成功使用最新spring-security-core:2.0-RC4和spring-security-ldap:2.0-RC2的 Grails 应用程序。用户可以使用 grails.plugin.springsecurity.ldap.search.base设置进行 LDAP 登录验证完美登录。
rememberMe userDnBase(映射器) 有一个不同的设置,该设置是: grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase
LDAP 身份验证grails.plugin.springsecurity.ldap.search.base设置为ou=people,dc=sitcudy,dc=edu。如上所述 - 登录工作正常,因为我已将一个名为searchSubtree的属性设置为 true。不幸的是,searchSubtree设置并不成立,并且在代码的“记住我”部分(.ldap.rememberMe )*中始终如一地执行。代码的 remember-me 部分使用基本 DN 的映射 grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase所以我在config.groovy文件 中放入一个字符串(与身份验证部分相同)映射到的基本 DNou=people,dc=sitcudy,dc=edu .... 映射到 DN 以便 LDAP 用户在返回应用程序以进行持久性 cookie 登录时查找。
这就是我的问题所在,大多数用户在我们的 LDAP 系统中被隔离到不同的 DIT 中。例如,某些用途在ou=staff,ou=people,dc=sitcudy,dc=edu中,而其他用户在ou=students,ou=people,dc=sitcudy,dc=edu因此,因为记住我的映射,在返回应用程序时,一旦验证 cookie,代码会尝试以这种格式绑定用户,uid=reuben_marcus,ou=people,dc=sitcudy,dc=edu不存在。确实存在的是uid=reuben_marcus,ou=staff,ou=people,dc=sitcudy,dc=edu因此 cookie 被销毁并且登录(IS_AUTHENTICATED_REMEMBERED)永远不会发生。
如果我将grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase更改 为ou=staff,ou=people,dc=sitcudy,dc=edu,remember me 功能对所有员工都很有效,但不适用于所有其他人——学生、教师等。
在这个问题上,我下面的主要设置是: grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase
由于这只是一个映射,并且不允许多个userDNBases或searchSubtree搜索.. 'remember-me' 代码应该如何找到不属于此基本 DN 设置的用户...??
我想知道我是否做错了什么,或者这是一个功能请求,让“记住我”代码具有多个映射userDNBases的选项或允许它具有searchSubtree搜索功能。
我的 config.groovy 中的相关设置:
active-directory - Jasper 服务器 Active Directory 错误:发现以元素“值”开头的无效内容
我正在验证 jasperserver 5.6.1 到 microsoft active directy 对此的引用。[ https://community.jaspersoft.com/documentation/jasperreports-authentication-cookbook/v56/authentication-microsoft-active-directory]
但是当我编译并运行服务器时,会出现日志错误。
cvc-complex-type.2.4.a:发现以元素“值”开头的无效内容。'{" http://www.springframework.org/schema/beans ":meta, 之一是预期的。
错误发生在 span class="Forceful" 中的 userSearch bean。
如何解决此错误?
最好的问候,钦塔卡
java - Atlassian FishEye 插件和 Spring LDAP 类
我的 FishEye 插件应该可以访问我们的 Active Directory 并为 FishEye 实现更多功能。该插件应该每隔 X 分钟与目录同步一次,因此它基于 SAL 调度程序。当我尝试使用 com.sun.jndi.ldap.LdapCtxFactory 时,我发现它只适用于 REST 插件,但即使我重新定义了类加载器,与 SAL 一起使用也不会加载这些类。无论如何,我使用 Spring LDAP 重新实现了我的功能,当我尝试将我的插件部署到 FishEye 时,我得到了:
好的。我用谷歌搜索并发现https://developer.atlassian.com/docs/faq/troubleshooting/dependency-issues-during-plugin-initialisation 有文字说我必须将依赖范围更改为提供以避免冲突。好的,我做到了。但现在我有另一个例外:
我试图将 spring-ldap-core-1.3.2.RELEASE.jar 放入 $fisheyeDir/lib 并且没有任何反应 - 引导加载程序没有拾取这个 JAR。
有谁知道在这种情况下可以做什么?我应该使用另一个 LDAP 框架还是可以将这些 ldap 客户端实现推送到类路径?
FishEye 版本 3.6.1(最新),将 jar 放入类路径版本 3.0.5.RELEASE。我的 spring-security-ldap 依赖也是 3.0.5.RELEASE。
提前致谢。
grails - 有没有办法在 Spring Security 插件的属性文件中定义角色而不是硬编码它们?
我正在使用 LDAP 插件和 Spring Security 插件。LDAP 插件获取登录用户所属的组。我的应用程序有两个角色admin
和normal
. 而不是硬编码角色,我想通过属性文件使它们可配置。这样,而不是写
我可以写类似的东西
在role.admins=ROLE_ADMINS
配置文件中的位置。
通过这种方式,我可以获取相同的 WAR 文件并将其部署在多个客户端上,每个客户端都有自己在 ActiveDirectory 中配置组名的标准化方法。