People Sync: Overview - akumina/AkuminaTraining GitHub Wiki
Applies to
Akumina Foundation 3.3.0.0 and later
What is the People Sync?
Most Intranets require up to date information on people associated with the enterprise. This presents the administrator with two problems.
- How to retrieve and display people's information on an Intranet
- How to ensure the information is up to date
The Akumina Framework provides turnkey solutions to both problems. The latest information on people within the enterprise is synced with the Akumina Foundation Intranet via the People Directory Sync Management app.
And this information is displayed in a searchable and filterable manner on the front end of the Akumina Foundation Intranet site via the People Directory Widget.
People Sync Console App
A People Sync is a threefold process. First, users and their associated data are retrieved from the specified Data Source. Second, the list of retrieved users pass through a filter which removes any undesired users from the sync. And lastly, the users are written into the aadusers.xml file that is referenced by the People Directory Widget and Akumina Workspaces. As of 4.0.0.0, this functionality is now built into a Console App which can be scheduled to run at specified intervals. Information on configuring the People Sync Console App can be found at the Akumina Learning Center
People Directory Sync App - DEPRECATED
The People Directory Sync Management App within the AppManager provides a UI for a business user to manually initiate a People Sync. This UI is no longer supported as of 4.0.0.0.
aadusers.xml
The aadusers.xml file is where the User Data is stored and referenced by the People Directory Widget and the Directory Search Widget. Each User has an individual xml tag for them and within that tag, all associated data with the particular user is stored within attributes. Below is a sample user tag.
<User accountenabled="True" city="New York City" numberoflicenses="1" companyname="" country="United States" deletiontimestamp="1/1/0001 12:00:00 AM" department="Strategy Consulting" dirsyncenabled="false" displayname="Aaron Painter" facsimiletelephonenumber="" givenname="Aaron" jobtitle="Strategy Consulting Manager" mail="aaronp@akuminadev02.onmicrosoft.com" mailnickname="aaronp" mobilephone="" objectid="580b44a4-f461-482f-9a36-cd9ecc7bbddb" objecttype="User" officelocation="Boston" othermails="[]" postalcode="" preferredlanguage="" />
The location of aadusers.xml file has to be specified within the interchange.settings.config file under the TempUploadPath key. If the path is not specified, then the file will be placed in the windows temp directory, usually c:\windows\temp.
<add key="akumina:tempuploadpath" value="C:\akumina\InterChange\Patches\3.3.1612.2862\Src\Akumina.Interchange.Web\temp" />
The specified folder path must exist or the People Sync will not execute.
Data Sources
Azure Active Directory Rest
Fetches data from the enterprise's Azure Active Directory. The Enterprise Azure Active Directory is determined from the AAD keys set within the DigispaceConfigurationIDS_AK list. The Azure Active Directory Rest runs a differential People Sync which only updates changes from the previous People Sync.
SharePoint Profiles
Fetches data stored within the SharePoint Profiles of the site. It should be noted there are fewer attributes for users available within SharePoint Profiles compared to Azure Active Directory profiles.
Azure Active Directory (Intranet 365)
Fetches data from the enterprise's Azure Active Directory. This is specifically for Intranets using Akumina's Intranet365 iteration of the directory.
Custom
Developers can fetch data from a Custom Data Source by creating a class that extends the IPeopleDirectoryUserFetcher interface.
Attribute Filtering
After Users are initially fetched, the list of Users are passed to a UserProcessorService, within which, users are removed based on the values of their attributes. Developers can implement a Custom User Processor Service be creating a class that extends the IPeopleDirectoryUserProcessor interface.
People Directory Widget
The People Directory Widget provides a front end where Users synced to the aadusers.xml file are visible with their properties on the Intranet Site. The default view for the People Directory Widget only makes some of the User attributes visible as shown below.
However, Developers can create a custom view for the People Directory to make additional attributes visible.
Search
The People Directory Widget is searchable with the built in Search Bar inside of the Widget. Users are searched from here by name.
You can also search for a user from anywhere within the Akumina Foundation Site by clicking the Directory Search icon at the top of the page. You will be redirected to the People Directory Page with the results of your search.
Filters
The People Directory Widget supports filtering of Users by specific attributes. Attributes can be added to the filter by adding a string of the format below to the facets array within the PeopleDirectory Widget Properties where the Attribute Name is the exact name of the attribute within the aadusers.xml and the Attribute Display Name is how you want the name to appear in the People Widget.
{ "facetName":"<Attribute Name>","facetDisplayName":"<Attribute Display Name>"}