Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The LDAP Group Cache app-bundle is loaded as the LDAP Cache Service and contains the functionality to download users and groups and their attributes from LDAP.

LDAP Group ExpansionFactory NameLdap Group CacheMaven Coordinatescom.searchtechnologies.aspire:app-ldap-group-cacheVersions3.0Type FlagsNoneInputsN/AOutputsN/A

LDAP Group Cache

The LDAP Group Cache bundle uses the following components:

  • Group Expansion Client
    • To handle group expansion requests, returning information from the LDAP cache


    LDAP Group Expansion
    Factory NameLdap Group Cache
    Maven Coordinatescom.searchtechnologies.aspire:app-ldap-group-cache
    Versions4.0
    Type FlagsNone
    InputsN/A
    OutputsN/A
     


    Configuration


     This section lists all configuration parameters available to install the LDAP services Application Bundle. 

    General Application Configuration

    0 0 0 ? * *
    Tells if group names retrieved from LDAP should be changed to lower case
    PropertyTypeDefaultDescription
    gemapplication
    The path to a Group Expansion Manager application.
    useScriptbooleanfalseIf false, the bundle will expect to connect to an LDAP server to populate the cache. If true, cache population will run a script
    enableLdapConnectorbooleantrueIf true, the bundle will load an LDAP connector to provide LDAP connectivity
    scriptFileString[Required (script)]The name of the script to run to gather the information for cache population
    jsonScriptbooleanfalseIf true, treat the script output as JSON. Otherwise treat it as XML
    serverstring The LDAP server host address. Example: ldap//10.10.44.82:389
    authenticationstringanonymousAuthentication type used for any LDAP request. Options are 'none', 'simple' and 'DIGEST-MD5'.
    userstringN/AUsername used to authenticate against the given LDAP server. If 'none' authentication type was selected, you can ignore this.
    passwordstringN/APassword used to authenticate against the given LDAP server. If 'none' authentication type was selected, you can ignore this.
    readTimeoutint600000
    (=60s)
    Read timeout in ms. The period may be entered in milliseconds, or with the suffix ms, s, m, h, d to indicate the units
    connectTimeoutint600000
    (=60s)
    Connection timeout in ms. The period may be entered in milliseconds, or with the suffix ms, s, m, h, d to indicate the units
    searchBasestring[Required (ldap)]The base directory in the LDAP for searches. Normally this is the domain of the LDAP server.
    scopeint2The scope of the LDAP for searches. 0 = search base only, 1 = search base and immediate children, 2 = subdirectory
    userQuerystring[Required (ldap)]The LDAP query used to find all users to be cached
    userAttributesXML The LDAP attributes to be retrieved and stored in the cache for users
    groupQuerystring[Required (ldap)]The LDAP query used to find all users to be cached
    groupAttributesXML<all>The LDAP attributes to be retrieved and stored in the cache for groups
    userKeyAttrstringdn (a pseudo attribute representing the object dn)The attribute in LDAP that is the unique key for the user
    userNameAttrstringsAMAccountNameThe attribute in LDAP that holds the account name
    groupKeyAttrstringdn (a pseudo attribute representing the object dn)The attribute in LDAP that is the unique key for the group
    groupNameAttrstringsAMAccountNameThe attribute in LDAP that holds the account name
    groupMappingAttrstringmemberOfThe attribute in LDAP that holds the groups for a user, or users for a group
    groupsHoldMembersbooleanfalseIf true, group objects reference their members (typically via a uniqueMember attribute). If false, user objects reference their groups (typically via a memberOf attribute).lowerCase
    schedulerbooleanfalseschedule0 0 0 ? * *The CRON expression for the scheduled cache reloads.
    retryDelaylong0The delay following an error before a retry is attempted. The period may be entered in milliseconds, or with the suffix ms, s, m, h, d to indicate the units
    retrieslong1The number of retries attempted, should an error occur, for an LDAP request before an Exception is thrown
    pageSizeint1000The page size of the search query (max 1000). If there are less results for a search than the page size, a single page will be returned. If there are more, the results will be returned in pages. This will be transparent to the client
    stripRequestDomainbooleanfalseIf true, any domain on the user given in the group expansion request will be removed before the request is made to the server
    addRequestDomainString If given, the given domain will be added to the user given in the group expansion request (overwriting any existing domain) before the request is made to the server
    stripResponseDomainbooleanfalseIf true, any domain on the groups returned from the group expansion server will be removed before the group expansion request is returned
    addResponseDomainString If given, the given domain will be added to the groups returned from the group expansion server will be removed before the group expansion request is returned
    staticGroupsXML Any groups added here will be added (exactly as specified here) to the group expansion request before it is returned
    addPublicbooleanfalseIf true, the generic public:all group will be added to the group expansion request before it is returned
    debugBooleanfalseControls whether debugging is enabled for the application. Debug messages will be written to the log files.

     

    Configuration Example

    Using LDAP

    To install the application bundle, connecting to an LDAP server to for cache population, add the configuration, as follows, to the <autoStart> section of the Aspire settings.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <application config="com.searchtechnologies.aspire:app-ldap-group-cache">
      <properties>
        <property name="useScript">false</property>
        <property name="enableLdapConnector">true</property>
        <property name="server">ldap://10.10.20.7:389</property>
        <property name="authentication">simple</property>
        <property name="user">search\sdenny</property>
        <property name="password">encrypted:0E206C5AED2A061A0B929A128B512652</property>
        <property name="connectTimeout">15s</property>
        <property name="readTimeout">15s</property>
        <property name="searchBase">dc=search,dc=local</property>
        <property name="scope">2</property>
        <property name="userQuery">(&(objectClass=user)(objectClass=organizationalPerson)(!(objectClass=computer)))</property>
        <property name="userAttributes"><users><attribute>cn</attribute><attribute>sn</attribute><attribute>c</attribute><attribute>l</attribute><attribute>title</attribute><attribute>description</attribute><attribute>telephoneNumber</attribute><attribute>givenName</attribute><attribute>memberOf</attribute><attribute>sAMAccountName</attribute><attribute>mail</attribute></users></property>
        <property name="groupQuery">(objectClass=group)</property>
        <property name="groupAttributes"><groups><attribute>sAMAccountName</attribute><attribute>cn</attribute><attribute>mail</attribute><attribute>member</attribute></groups></property>
        <property name="lowerCase">false</property>
        <property name="userKeyAttr">dn</property>
        <property name="userNameAttr">sAMAccountName</property>
        <property name="groupKeyAttr">dn</property>
        <property name="groupNameAttr">sAMAccountName</property>
        <property name="groupMappingAttr">member</property>
        <property name="groupsHoldMembers">true</property>
        <property name="schedule">0 0 0 ? * *</property>
        <property name="generalConfiguration">true</property>
        <property name="addPublic">false</property>
        <property name="staticGroups"><staticGroups/></property>
        <property name="requestDomain">leave</property>
        <property name="addRequestDomain"/>
        <property name="stripRequestDomain">false</property>
        <property name="responseDomain">leave</property>
        <property name="addResponseDomain"/>
        <property name="stripResponseDomain">false</property>
        <property name="retries">3</property>
        <property name="retryDelay">5s</property>
        <property name="pageSize">1000</property>
        <property name="debug">true</property>
      </properties>
    </application>
    

    Using Script

    To install the application bundle using a script for cache population, add the configuration, as follows, to the <autoStart> section of the Aspire settings.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <application config="com.searchtechnologies.aspire:app-ldap-group-cache">
      <properties>
        <property name="useScript">true</property>
        <property name="enableLdapConnector">false</property>
        <property name="scriptFile">c:\ldap\populate.bat</property>
        <property name="jsonScript">false</property>
        <property name="lowerCase">false</property>
        <property name="userKeyAttr">dn</property>
        <property name="userNameAttr">sAMAccountName</property>
        <property name="groupKeyAttr">dn</property>
        <property name="groupNameAttr">sAMAccountName</property>
        <property name="groupMappingAttr">member</property>
        <property name="groupsHoldMembers">true</property>
        <property name="schedule">0 0 0 ? * *</property>
        <property name="generalConfiguration">true</property>
        <property name="addPublic">false</property>
        <property name="staticGroups"><staticGroups/></property>
        <property name="requestDomain">leave</property>
        <property name="addRequestDomain"/>
        <property name="stripRequestDomain">false</property>
        <property name="responseDomain">leave</property>
        <property name="addResponseDomain"/>
        <property name="stripResponseDomain">false</property>
        <property name="retries">3</property>
        <property name="retryDelay">5s</property>
        <property name="pageSize">1000</property>
        <property name="debug">true</property>
      </properties>
    </application>
    
    

    Note: Any optional properties can be removed from the configuration to use the default value described on the table above.