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 Name | com.searchtechnologies.aspire:aspire-box-scanner |
subType | groupExpansion |
Inputs | A Job containing a group expansion request |
Outputs | A Job containing a group expansion result |
Element | Type | Default | Description |
---|---|---|---|
Server | string | https://app.box.com | The Box server Url. |
Server API Url | string | https://api.box.com | URL for Box API. |
API version | string | 2.0 | The API version that Box is using. |
Client Id | string | none | The client id of an app in Box.com with access to the Box account. |
Client Secret | string | none | The Client Secret of an app in Box.com with access to the Box account. |
Redirect Url | string | https://localhost:4000 | The a valid URL to redirect the authorization tokens (for authorization process) |
User | String | none | Login of the Box account. |
Password | string | none | Password for Box account. |
ExtractLDAP | boolean | false | Indicates 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. |
LDAPUrl | string | none | Ldap url server |
dnUser | string | none | DN User to connect to LDAP |
dnPassword | string | none | Password to connect to LDAP |
userSearchFilter | string | none | User and Groups search filter |
ldapSearchBase | string | none | Ldap search base to find users and groups |
LDAPGuidAttr | string | none | The ldap field name for the email attribute |
LDAPNameAttr | string | none | The ldap field name for the windows attribute |
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> |