The client is a large multi national data storage company headquartered in USA
When a document is shared or a meeting invite is sent from Microsoft Office 365 service (Sharepoint or outlook) to any external user (who is outside the organization), an account gets created in Azure Active Directory for that external user. There is no mechanism / limited capability to manage (delete, block, disable) such external users in the existing Microsoft Azure Active directory
Client requirement is to build an application which will a) enable automated process to maintain mapping of client employees to external users who they had invited on Office 365 / Sharepoint portal for content sharing or any other purpose b) better control on such external users access through timely expiry, renewal and deactivations of their credentials c) build automated workflows, relevant notification modules
We worked very closely with the client’s Information Security and Infrastructure teams to better understand the problem statement, current process and infrastructure and discussed possible solution
Developed various PoCs to explore access to Azure Active Directory logs, Sharepoints logs, On-premises AD user accounts and their audit logs and mailing system for notification workflows etc.
This application accesses Azure AD logs through Microsoft Graph API, accesses Sharepoint logs through Microsoft APIs, accesses On-premises AD to fetch employee information using LDAP server and LDAP client. On a regular basis it fetches relevant information from logs, to identify guest users and invitees, stores it in MSSQL database, creates several workflow to notify external users, follows an escalation matrix to notify employees in relevant organizational hierarchy, extends guest user account access or block after specified time.
Major modules:
Technology Domain | Tools |
Development Technologies | Node.js, LDAP, Graph API, Azure AD, SharePoint, Onprem AD, Office 365, MSSQL, AngularJS |
Azure Product & Services | Azure AD, Azure Email Service, Graph API, SharePoint |