The Box Group Expansion accepts group expansion request containing a username and provides a list of groups to which the user belongs in a group expansion result.

This component uses the Restful API from Box to fetch user group information. All group information is cached, so further group expansion requests won't make unnecessary calls to the Box server.

This component is based on the Simple Group Expander.

Box Group Expansion 
Factory Namecom.searchtechnologies.aspire:aspire-box-scanner
subTypegroupExpansion
InputsJob containing a group expansion request
OutputsJob containing a group expansion result

Configuration

ElementTypeDefaultDescription
Serverstringhttps://app.box.comThe Box server Url.
Server API Urlstringhttps://api.box.comURL for Box API.
API versionstring2.0The API version that Box is using.
Client IdstringnoneThe client id of an app in Box.com with access to the Box account.
Client SecretstringnoneThe Client Secret of an app in Box.com with access to the Box account.
Redirect Urlstringhttps://localhost:4000The a valid URL to redirect the authorization tokens (for authorization process)
UserStringnoneLogin of the Box account.
PasswordstringnonePassword for Box account.
ExtractLDAPbooleanfalseIndicates if we need to map windows account with Box account.The default value of ACL in Box connector would be a box user account, which is a email account (masolis@searchtechnologies.com). But if the group expansion needs to handle a Windows accounts (for example, if you are indexing in Sharepoint) instead of emails, you need to configure the LDAP server information that contains the definition of all Box accounts, then the Box group expansion would create a map between the windows account and the Box email.
LDAPUrlstringnoneLdap url server
dnUserstringnoneDN User to connect to LDAP
dnPasswordstringnonePassword to connect to LDAP
userSearchFilterstringnoneUser and Groups search filter
ldapSearchBasestringnoneLdap search base to find users and groups
LDAPGuidAttrstringnoneThe ldap field name for the email attribute
LDAPNameAttrstringnoneThe ldap field name for the windows attribute

 

Configuration

Example
<!--Group Expansion -->
    <component name="GroupExpansionScheduler" subType="default"
      factoryName="aspire-scheduler">
      <debug>${debug}</debug>
      <schedules>
        <schedule name="GECache" enabled="true">
          <cron>${geSchedule}</cron>
          <event>onGECache</event>
          <job>
            <![CDATA[
              <doc actionProperties="cacheGroups">
                <routingTable>
                  <${app.name}>
                    <properties>
                      <connectorSource>
                        <Server>${url}/</Server>
                        <ServerApi>${serverApi}/</ServerApi>
                        <ClientId>${clientId}</ClientId>
                        <ClientSecret>${clientSecret}</ClientSecret>
                        <Redirect_Url>${redirect_url}</Redirect_Url>
                        <username>${username}</username>
                        <BoxPassword>${password}</BoxPassword>
                        <ldapUrl>${ldapUrl}</ldapUrl>
			<dnUser>${dnUser}</dnUser>
			<dnPassword>${dnPassword}</dnPassword>
			<userSearchFilter>${userSearchFilter}</userSearchFilter>
			<ldapSearchBase>${ldapSearchBase}</ldapSearchBase>
			<LDAPGuidAttr>${LDAPGuidAttr}</LDAPGuidAttr>
			<LDAPNameAttr>${LDAPNameAttr}</LDAPNameAttr>  
                      </connectorSource>
                    </properties>
                  </${app.name}>
                </routingTable>
                <displayName>Box</displayName>
              </doc>
            ]]>
          </job>
        </schedule>
      </schedules>
      <branches>
        <branch event="onGECache" pipelineManager="Main" />
      </branches>
    </component>

    <component name="GroupExpansionPipelineManager" subType="pipeline"
      factoryName="aspire-application">
      <debug>${debug}</debug>
      <gatherStatistics>${debug}</gatherStatistics>
      <pipelines>
        <pipeline name="group-expansion-pipeline" default="true">
          <stages>
            <stage component="IncomingJobLogger" />
            <stage component="BoxGroupExpansion" />
          </stages>
        </pipeline>
      </pipelines>
      <components>
        <component name="IncomingJobLogger" subType="jobLogger"
          factoryName="aspire-tools">
          <debug>${debug}</debug>
          <logFile>log/${app.name}/GroupExpansionPipelineManager/incoming.jobs
          </logFile>
        </component>
        <component name="BoxGroupExpansion"
          subType="expansionClient" factoryName="aspire-simple-group-expander">
          <debug>${debug}</debug>
          <server>../Main/Scanner</server>
          <addPublic>${addPublic}</addPublic>
          ${xml:staticGroups}
          <domain>
            <request strip="${stripRequestDomain}" add="${addRequestDomain}"/>
            <response strip="${stripResponseDomain}" add="${addResponseDomain}"/>
          </domain>
        </component>
      </components>
    </component>
  • No labels