Ich verwende Spring Security (nun, jasper meldet Server, der Spring-Sicherheit verwendet), um eine Verbindung zu einem Microsoft AD herzustellen. Aber ich erhalte in meinem Log eine "schlechte Anmeldeinformationen", aber ich weiß, dass die Credentials in Ordnung sind und ich auf meinem Rechner mit JXplorer eine Verbindung zu meinem AD herstellen kann und ein anderes Programm verwenden kann, um mich mit diesem Account anzumelden. Das Protokoll zeigt es verbindet, aber versagt:Spring LDAP 'schlechte Anmeldeinformationen' (konnte nicht gebunden werden)
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
In meinem AD wird der Benutzer wie folgt:
Distinguished Name: CN = Apotheke, OU = Users, DC = harris, DC = local
Meine Konfiguration ist wie folgt:
<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>
ich sehe so viele verschiedene Permutationen von Config im Internet schwer zu wissen, es ist was zu folgen. Ich hatte einen DefaultLdapAuthoritiesPopulator-Konstruktor für die Gruppe mit dem Authentifizierungsanbieter, der aber auch nicht funktionierte.
Kann jemand helfen? Danke vielmals.