Wizdom SharePoint add-in
This article descibes how the Wizdom SharePoint Add-in integrates with SharePoint/Office 365 and the Azure infrastructure required to run Wizdom on Office 365.
Wizdom for Office 365 is using the SharePoint Add-in model (previously named app-model).
When using the Add-in model the Wizdom application have minimal footprint on the SharePoint tenant. Application code are executed outside the SharePoint platform. Wizdom integrates with SharePoint through iframes, scripts and web service endpoints.
Installation of Wizdom
The Wizdom SharePoint Add-in are installed in the corporate app-catalog on the SharePoint tenant. Wizdom can be installed on any number of site collections on the tenant.
For Classic: Site collections with Wizdom installed will have the Wizdom UI, script controls, webparts, pagelayouts and business applications available. Wizdom can also easily be uninstalled on a site collection, leaving it a standard SharePoint site collection.
For Modern: Site collections created with the Wizdom site designs will have the Wizdom UI, webparts and business applications available. On site collections created without Wizdom site designs will still have Wizdom web parts available.
Azure infrastructure requirements
Wizdom for Office 365 requires the following services.
Office 365 tenant and Azure Active Directory
Azure Active Directory is the primary directory for all organizational Microsoft online services including Office 365.
Wizdom needs programmatic access to Azure AD through REST API endpoints. This is provided by registering the Wizdom application in the Azure Portal and grant it API access to perform read operations on directory data and objects.
Wizdom uses a single website to host all application REST endpoints. The website serves HTTPS requests from the scripts and webparts hosted in a SharePoint page.
The website can be scaled up (more CPU) and out (more instances) to support many simultaneous users. Scaling websites is easily done in the Scale tab of the Azure management portal.
Wizdom uses a SQL database to store relational data for applications.
Redis Cache is a secure, dedicated cache service. Wizdom uses Redis Cache to store intensive and slow queries to optimize response times in applications.
BLOB storage is used to store large amounts of unstructured data, such as text or binary data. Wizdom uses BLOB storage to store configuration that span across SharePoint site collections.
Customizations (HTML templates, custom JS and CSS) as well as all images are also saved in the BLOB storage.
Wizdom also uses Table storage to store diagnostic logging.
SharePoint integration model
Wizdom uses the SharePoint Add-in model to integrate with SharePoint. When Wizdom are installed on a site collection, the Wizdom SharePoint Add-in are injected by registering a scriptlink on the site collection and communicated with the Wizdom backend using an iframe. The SharePoint Add-in automatically verifies its validity through the SharePoint appredirect.aspx page and returns an accesstoken that Wizdom can use to query SharePoint and its services.
Wizdom have clientside scripts that communicates with our Azure hosted REST endpoints. The Azure endpoints then communicate with SharePoint, SQL, Redis Cache ect. The endpoints incoming requests are verified from the session and SharePoint cachekey and processed if valid.
Wizdom uses different Azure services (Cache, Database ect.). Credentials for these services are stored in the app settings for the app service or optionally encrypted in the key vault. Accesstokens are retrieved using these credentials.