SharePoint Catalog Configuration

SharePoint is a web-based collaborative platform that integrates with Microsoft Office. Launched in 2001, SharePoint is primarily sold as a document management and storage system, but the product is highly configurable and usage varies substantially between organizations. In Stacks, you can create a searchable catalog of the content in your SharePoint system.

Set Up Your SharePoint Connection

There are 3 steps to the process of setting up this Stacks-SharePoint Connection:

  1. Generate keys on your local workstation (In this case we recommend using Keycred to generate keys. It’s available at https://github.com/formio/keycred)

  2. Create a new "App" in Azure Active Directory (AAD) and configured the permissions and encryption keys. Visit the Azure Portal at https://portal.azure.com with your Admin user.

  3. Configure the SharePoint integration in your Stacks site.

Step One

Step 1 - Using Keycred to Create a Key Pair for Azure

  1. Download and run the keycred tool filling out the 7 questions with your organization details.

  2. Record the 4 sections of the results which you will need for Azure and Stacks. The sections are:

    1. Key Credentials

    2. Private Key (Copy this snippet including BEING and END into a file called Private.key)

    3. Certificate (Copy this snippet including BEING and END into a file called Public.crt)

    4. Certificate Fingerprint

Sample Output

Step Two

Step 2 - Add a new App to the Azure Active Directory App Registrations

  1. To start select Azure Active Directory → App registrations blade

  2. Click "New application registration"

  3. Use the following values:

  1. Select the Settings option to display the Settings blade

  2. Select "Required Permissions" then click “Add”

  3. Click "Select an API" then click "Office 365 Sharepoint Online" and press the “Select” button

  4. Assign the following permission:

    • Read User Profiles

    • Read managed metadata

    • Read items in all site collections

    • Delegate Permission

      • Read User Profiles

      • Read items in all site collections

  1. Click the “Grant Permissions” button to commit the changes.

Navigate to the Keys blade

  1. Select the Upload Public Key then select the “Public.crt” file you created above.

  2. Click “Save”. You have a successfully added the app to Azure.

Step Three

Step 3 - Configure the Azure Connection in Stacks

  1. Login to your Stacks site as an administrator.

  2. Navigate to the Search Configuration tile and select Catalogs and then SharePoint from the drawers.

  3. Enter the values from your Office 365 Configuration:

    • Tenant ID (Also known as the Directory ID. Can be found under Azure Active Directory > Properties under Directory ID)

    • Resource URL (The desired SharePoint resource you want to connect to. E.g., https://your-organization.sharepoint.com)

    • Client ID (Aka Application ID The Application ID of the registered App created. Can be found under your Application property blade in Azure Active Directory > App registrations)

    • X5T Fingerprint (This is displayed in the Key Credentials display from the Keycred tool in Section - The 'CustomKeyIdentifier' of the uploaded Key Credentials located in the Application's Manifest file.)

    • Private Key (Paste the private key value from Section 1 including the BEGIN and END section

  4. Press “Save”. You have successfully added the SharePoint search to your Stacks site.

Configure Searchable Fields
  1. Login in to Sharepoint then navigate to go to Site Settings > Search Schema

  1. In the Search Schema page, they will need to create a Managed Property for each of the Columns (also known as Crawled Properties) by mapping them together.
  • Add Managed Property

 

  1. Fill out the forms and check searching and queryable and also make sure that “Retrievable” is checked.

  1. Map the property to the crawled property by Add a Mapping and Searching for the columns, such as “KC Title”

  1. Please enable these settings for each of the fields (properties) that they need released.