Jump to content
We've recently updated our Privacy Statement, available here ×

tuser.ja

Members
  • Posts

    2
  • Joined

  • Last visited

Community Answers

  1. tuser.ja's post in LDAP (AD 2012) Nested AD Groups and Role Mapping was marked as the answer   
    After much trial and error, and some assumption on my part based on the existing UserSearch filter I have found the solution to my problem.  I hope this helps anyone wanting to leverage existing groups and user memberships, while still having a specific, manageable, configuration for including Jasper Reports into the organization's directory services for authentication and wuthorization.
    Refernced documentation:
    http://community.jaspersoft.com/documentation/jasperreports-server-authentication-cookbook/mapping-user-roles
    http://community.jaspersoft.com/blog/jasperserver-user-authentication-microsoft-active-directory
    http://community.jaspersoft.com/wiki/secure-active-directoryldapldaps-authentication-groups
    http://forum.spring.io/forum/spring-projects/data/ldap/107516-find-all-sub-groups-of-all-depths-of-a-given-group-in-ldap-using-ldaptemplate
     
    I changed the group search filter from:
    <value>(&(member={0})(objectclass=group)(cn=jasper_*))</value>
    Which expects to find a user as a direct member of a group beginning with "jasper_" to match a role
    to:
    <property name="groupSearchFilter" value="(&((objectClass=group)(member:1.2.840.113556.1.4.1941:={0})(cn=jasper_*)))"/>
    Which, like the userSearch, recursively searches through the user's memberships for a group matching "jasper_" to match and map a role.

    It is my understanding based on what I've read from the Spring documentation and other posts that the recursive functionality is not present in all LDAP implementations.  The referenced article https://msdn.microsoft.com/en-us/library/aa746475%28VS.85%29.aspx indicates that the rule OID above:
    1.2.840.113556.1.4.1941LDAP_MATCHING_RULE_IN_CHAINThis rule is limited to filters that apply to the DN. This is a special "extended" match operator that walks the chain of ancestry in objects all the way to the root until it finds a match.
     
×
×
  • Create New...