使用服务帐户对 LDAP 目录进行 Spring-Authentication

Posted

技术标签:

【中文标题】使用服务帐户对 LDAP 目录进行 Spring-Authentication【英文标题】:Spring-Authentication to LDAP directory with a service account 【发布时间】:2017-06-08 00:09:37 【问题描述】:

我正在开发在 Spring 上开发的应用程序并尝试与 LDAP 目录建立连接。 我有一个服务帐户,可以访问 LDAP 目录,但我的配置有问题。

我的服务帐户:登录名/密码>>服务/服务密码

在 LDAP 目录中注册的一个用户帐户:登录名/密码 >> user1/pass1

当我尝试在登录界面上使用用户帐户登录时出现错误,但通过输入服务帐户的登录名/密码我登录了。

我的 user-coontext.xml 文件是:

> <!-- LDAP -->         <security:ldap-server
> url="ldap://192.168.1.68:389/o=digital" />        <bean
> id="ldapAuthProvider"
> class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
>       <constructor-arg>           <bean
> class="org.springframework.security.ldap.authentication.BindAuthenticator">
>               <constructor-arg ref="contextSource" />
>               <property name="userDnPatterns">
>                   <list>
>                       <value>uid=0</value>
>                   </list>
>               </property>             </bean>         </constructor-arg>      <constructor-arg>           <bean
> class="edu.mit.kit.userdetails.MappedLdapAuthoritiesPopulator">
>               <property name="admins">
>                   <set>
>                       <!-- list admin usernames here -->
>                   </set>
>               </property>             </bean>         </constructor-arg>  </bean> 
>           <bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
>       <property name="url" value="ldap://192.168.1.68:389/">      <property
> name="base" value="o=digital,ou=TechnicalAccount,ou=Comp" />  </bean>
> 
>   <bean id="ldapTemplate"
> class="org.springframework.ldap.core.LdapTemplate">       <constructor-arg
> name="contextSource" ref="contextSource" />   </bean>         <bean
> id="ldapUserInfoRepository" primary="true"
> class="edu.mit.kit.repository.impl.LdapUserInfoRepository">
>       <property name="ldapTemplate" ref="ldapTemplate" />     </bean>

><!-- end LDAP -->

你能帮忙吗?

【问题讨论】:

【参考方案1】:

我找到了答案,我想和你分享:

更改配置并放置:

security:ldap-server url="ldap://192.168.1.68:389/o=digital" manager-dn="uid=service,ou=TechnicalAccounts" manager-password="servicepass" />

【讨论】:

以上是关于使用服务帐户对 LDAP 目录进行 Spring-Authentication的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Boot/Spring Security 对 LDAP 进行证书身份验证

使用 JWT Auth 对 LDAP 服务进行身份验证

从 Spring Boot 应用程序使用 AD LDP 进行 LDAP 身份验证

如何使用 Spring Ldap Authentication 和 spring mvc 对用户进行身份验证

企业分布式微服务云SpringCloud SpringBoot mybatis (十六)Spring Boot中使用LDAP来统一管理用户信息

通过 Spring security ldap 对用户进行身份验证时未授予任何权限错误