Spring LDAP'错误凭据'(无法绑定)

时间:2017-07-12 09:51:14

标签: spring spring-security jasperserver

我正在使用Spring Security(嗯,jasper报告服务器,使用Spring安全性)连接到Microsoft AD。但我在我的日志中得到了“错误的凭据”,但我知道凭据很好,在我的同一台机器上我可以使用JXplorer连接到我的AD,并可以使用其他程序使用此帐户登录。日志显示它正在连接,但失败了:

Authentication attempt using com.jaspersoft.jasperserver.api.security.externalAuth.wrappers.spring.ldap.JSLdapAuthenticationProvider
Processing authentication request for user: pharmacy
Searching for user 'pharmacy', with user search [ searchFilter: '(sAMAccountName={0})', searchBase: 'OU=Users', scope: subtree, searchTimeLimit: 0, derefLinkFlag: false ]
Got Ldap context on server 'ldap://10.17.188.4:389/dc=harris,dc=local'
Searching for entry under DN 'dc=harris,dc=local', base = 'ou=Users', filter = '(sAMAccountName={0})'
Found DN: cn=pharmacy,ou=Users
Attempting to bind as cn=pharmacy,ou=Users,dc=harris,dc=local
Removing pooling flag for user cn=pharmacy,ou=Users,dc=harris,dc=local
Failed to bind as cn=pharmacy,ou=Users: org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - 8009030C: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 532, v1772
Bad credentials

在我的AD中,用户如下:

专有名称:CN =药房,OU =用户,DC =哈里斯,DC =本地

我的配置如下:

<bean id="ldapAuthenticationProvider" class="com.jaspersoft.jasperserver.api.security.externalAuth.wrappers.spring.ldap.JSLdapAuthenticationProvider">
    <constructor-arg>
        <bean class="com.jaspersoft.jasperserver.api.security.externalAuth.wrappers.spring.ldap.JSBindAuthenticator">
            <constructor-arg>
                <ref local="ldapContextSource"/>
            </constructor-arg>
            <property name="userSearch">
                <ref local="userSearch" />
            </property>
        </bean>
    </constructor-arg>
</bean>


<bean id="ldapContextSource" class="com.jaspersoft.jasperserver.api.security.externalAuth.ldap.JSLdapContextSource">
    <constructor-arg value="ldap://10.17.188.4:389/DC=harris,DC=local"/>
    <property name="userDn" value="CN=ldadmin,OU=Users,DC=harris,DC=local"/>
    <property name="password" value="xxxxx"/>
    <property name="referral" value="follow" />
</bean>


<bean id="userSearch"
      class="com.jaspersoft.jasperserver.api.security.externalAuth.wrappers.spring.ldap.JSFilterBasedLdapUserSearch">
    <constructor-arg index="0">
        <value>OU=Users</value>
    </constructor-arg>
    <constructor-arg index="1">
        <value>(sAMAccountName={0})</value>
    </constructor-arg>
    <constructor-arg index="2">
        <ref local="ldapContextSource" />
    </constructor-arg>
    <property name="searchSubtree">
        <value>true</value>
    </property>
</bean>

我在互联网上看到了很多不同的配置排列,很难知道应该遵循哪些配置。我确实有一个带有身份验证提供程序的组的DefaultLdapAuthoritiesPopulator构造函数,但是它也不起作用。

有人可以帮忙吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

这似乎是一个VPN问题。以上情况很好:)

如果有人需要让Microsoft AD使用Jasper / Spring。