Business software and compliance Case study
Also: Operations and facility management
Guardian by RiskA: Microsoft security score portal
A React and Node.js portal for RiskA that connects to a customer's Microsoft tenant, reads its Secure Score and recommendations from Microsoft Graph, and turns them into an identity score, a 90-day trend and a fix checklist.
- React
- Node.js
- Docker
- ApexCharts
- Express
Overview
Guardian is RiskA's portal for showing a business how secure its Microsoft environment is. A customer signs in, links their Microsoft tenant, and sees an identity score, a 90-day trend and plain-language recommendations, with a checklist to track each fix. RiskA's admins onboard customers and can open a customer's view to help them. We built the web app and the API behind it.
The challenge
The raw Microsoft security data is long and technical. The portal has to read it with the customer's permission, keep that permission valid without asking again, and show only what the customer needs to act on, while admins and customers see different things.
What we built
- A customer dashboard with an identity score and a 90-day Secure Score trend chart
- Security health insights with resolution steps for each recommendation
- A security checklist with a status per item for each customer
- A flow for linking a customer's Microsoft tenant, with automatic refresh of the access tokens
- An admin console to onboard customers, view their dashboards and open their view for support
- Sign-in and roles (admin and customer) with Auth0
- Account emails from branded templates
- Containerised front end and API for deployment
- Dashboard counters for active users and open findings
How a system like this fits together
Reference architecture: Microsoft security score portal
Simplified reference architecture, not a client schematic.
- An admin signs in with Auth0 and onboards a customer in the admin console. The Express API checks the admin role, stores the customer and sends an account email.
- The customer signs in and links their Microsoft tenant: Microsoft Entra asks for consent and issues the tokens the portal needs to read their data.
- A background job renews the Microsoft access so the customer is not asked to link again.
- The API reads the tenant's Secure Score and recommendations from Microsoft Graph.
- The dashboard turns that data into an identity score, a 90-day trend and recommendations, with a checklist that tracks the status of each fix in the relational database.
Technology used
| Layer | Choice | Purpose |
|---|---|---|
| Front end | React, Bootstrap, ApexCharts | customer dashboard and admin console |
| API | Node.js, Express | REST back end |
| Delivery | Docker | containers for both apps |
| Data | Sequelize, relational database | customers, checklists and tokens |
| Identity | Auth0, Microsoft Entra | portal sign-in and tenant access |
| Data source | Microsoft Graph | Secure Score and recommendations |
What happened next
- Delivered
The work described above was delivered to the client.
Could this be your project?
- You need a web application with user accounts, admin tools and reporting. Website and web app development
- Your product has to connect to payment, accounting, messaging or other third-party systems.
- You work in business software and compliance and want a team that has built for it before. Business software and compliance work
Questions about this project
What technology was used?
React, Node.js, Docker, ApexCharts, Express, Sequelize, Auth0, Microsoft Graph, Microsoft Entra, MSAL, Joi, Axios, Bootstrap.
Similar work

Also React and Node.js, same industry
Rackless: ticket and work-request platform
A long-running web platform for Rackless, a cloud software services company: a ticket and work-request app with reports and email notifications, plus its WordPress sites, a Salesforce integration and a React Native app.

Also React and Node.js, same industry
GeeScore: job and jobseeker scoring platform
A web platform for GeeScore that connects jobseekers with jobs and scores how well they match, with job lists and details, a dashboard, graphs and maps, a customisable widget and Stripe payments, on AWS.

Also Node.js, same industry
AXENCIS: brand protection case management platform
xcore, AXENCIS's Laravel and Vue platform for tracking online marketplace listings through investigation to legal case, with browser extensions, evidence capture and accounting for clients and law firms.
