Hosting Company Client Dashboard

hosting-company

Introduction

US based hosting company required to have an application which can be a part of Azure App Services. Some of the features of the application are mentioned below. This application was implemented on .Net core platform using Blazor WebAssembly framework.

Blazor WebAssembly framework its dependencies, and the .NET runtime are downloaded to the browser, and the app is executed directly on the browser UI thread. All UI updates and event handling happen within the same process.

Azure AD, M365 Licenses & ConnectWise integration

Based on the Domain, user is to be able to login to Azure App. This helps App specific Super Admin, Client Admin, Client Manager, and a user to utilize the resources at single place.

App lists the users from Azure AD and Local AD, Manger and Admin, application shows the options for operations like Add user, disable user, manage license. It also provides interface of setting up the DUO Multi-factor auth option for users. It also has interface of listing the remote applications from Active Directory server.

blazor

Only Azure AD can log into the App for operations based on the roles. Graph APIs are implemented to authenticate and authorize the app access. App uses Microsoft 365 identity service for authentication and authorization. The resource access has been granted based on the access permission granted to Graph API by the Global Admin from Azure where the App has been hosted. There are 3 roles/groups defined in Azure, Admin, Manager and a User.

App has interface for providing basic operations of the tech-support ticketing system “ConnectWise” using latest SDK.

All the Licenses specific functionality has been implemented using PowerShell scripts.

Below are the main activities.

  • Manage the user using “New User Wizard” and “Disable user wizard”.
  • Manage the user specific Microsoft 365 licenses using Graph API.
  • Configure the Mailbox forwarding, and mailbox creation based on the licenses.
  • Basic features of management of ConnectWise ticketing
  • Invoice comparison and payments based on the data from ConnectWise.
  • Export the data to PDF.

Below section provides more details about User management and Ticketing system information.

Create & Disable user

Some of the functions from Local AD and Azure AD can be managed using this App. App allows user to perform following actions.

  1. Create new user based on the existing user (Template) or from scratch. It includes granting the access to AD Groups and Licenses. It also includes creation of mailbox based on the selected licenses.
  2. It also helps in changing the licenses on the fly as per the requirement.
  3. Setup a DUO account
  4. Disable the user from Azure AD and Local AD. While disabling the user, forward the mailbox, setup auto-reply message, remove the user specific licenses.
user-wizard

Disabling user shows the status of each completed activity as shown in the below screenshot.

Creating and disabling the mailbox has been done using PowerShell scripts and APIs. The API internally triggers the PowerShell scripts. Based on the result of PowerShell script, App shows the status accordingly as shown in the below screenshot

There are limitations on creating and disabling the mailboxes using Graph APIs. This has been achieved using the combination of PowerShell script and custom APIs. The custom APIs have been used performing the required operations which internally triggers the PowerShell scripts.

disableuser

Basic features of ConnectWise ticketing, invoicing & Assets

Basic featured includes –

  1. Create and close support ticket.
  2. Invoice details and pay the invoices.
  3. Comparison on Invoices based on License Quantity and amount
  4. Update the contact information of assets.

Ticket creations

create-ticket

Invoice payment

billing-address

RD Web Applications management

Application uses the RD Web Feed details based on the API deployed on the Server. API provides the data in JSON format to load the Windows application related information.

workspace

The API is deployed on the dedicated server from where the RDWeb feed information is fetched & used to show the user specific applications on the Web tool as shown in the above image.