Business software and compliance Case study

Also: Operations and facility management

Guardian by RiskA: Microsoft security score portal

Client: RiskA

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
Client
RiskA
Service
Web apps, Integrations
Stack
React, Node.js, Docker, ApexCharts and 9 more
Platforms
Web

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

  1. A customer dashboard with an identity score and a 90-day Secure Score trend chart
  2. Security health insights with resolution steps for each recommendation
  3. A security checklist with a status per item for each customer
  4. A flow for linking a customer's Microsoft tenant, with automatic refresh of the access tokens
  5. An admin console to onboard customers, view their dashboards and open their view for support
  6. Sign-in and roles (admin and customer) with Auth0
  7. Account emails from branded templates
  8. Containerised front end and API for deployment
  9. 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.

Reference architecture: Microsoft security score portalZones from left to right: clients (the customer dashboard and the admin console, both React), the application (the Express API) with a background job that refreshes Microsoft access, data (a relational database) and third-party services (Auth0, Microsoft Graph, email delivery and Microsoft Entra). Full description in the numbered list below the diagram.ClientsApplicationBackground jobs (async)DataThird-party servicesRESTJWTsign-in, scores, consent, emailread / writestorerefresh tokensCustomer portalReact: score, trend,checklistAdmin consoleReact: onboard andsupport customersExpress APIAdmin and customerroles, JWTToken refresh jobKeeps the Microsoftlink validDatabaseRelational: customers,checklists, linksAuth0Sign-in and rolesMicrosoft GraphSecure Score andrecommendationsEmail deliveryAccount emails frombranded templatesMicrosoft EntraTenant consent and tokensReference architecture: Microsoft security score portalZones from left to right: clients (the customer dashboard and the admin console, both React), the application (the Express API) with a background job that refreshes Microsoft access, data (a relational database) and third-party services (Auth0, Microsoft Graph, email delivery and Microsoft Entra). Full description in the numbered list below the diagram.ClientsApplicationDataBackground jobs (async)Third-party servicesREST, JWTread / writestorerefresh tokensAPI callsCustomer dashboardReact: identity score, trendAdmin consoleReact: onboard and supportExpress APIRoles (admin, customer), JWTRelational databaseCustomers, checklists, linksToken refresh jobKeeps the Microsoft link validMicrosoft EntraTenant consent and tokensAuth0Sign-in and rolesMicrosoft GraphSecure Score, recommendationsEmail deliveryAccount emails
A React app for customers and admins calls one Express API; Auth0 handles sign-in and roles, Microsoft Entra grants access to the customer's tenant, and Microsoft Graph supplies the Secure Score data.
  1. 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.
  2. 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.
  3. A background job renews the Microsoft access so the customer is not asked to link again.
  4. The API reads the tenant's Secure Score and recommendations from Microsoft Graph.
  5. 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

Technology named in the project records, by layer
LayerChoicePurpose
Front endReact, Bootstrap, ApexChartscustomer dashboard and admin console
APINode.js, ExpressREST back end
DeliveryDockercontainers for both apps
DataSequelize, relational databasecustomers, checklists and tokens
IdentityAuth0, Microsoft Entraportal sign-in and tenant access
Data sourceMicrosoft GraphSecure Score and recommendations

What happened next

  • Delivered

    The work described above was delivered to the client.

Could this be your project?

Request similar 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

Rackless: ticket and work-request platform screenshot

Also React and Node.js, same industry

Rackless: ticket and work-request platform

  • Business software and compliance
  • Web apps
  • Mobile apps
  • Integrations
  • Website and SEO

2014–2026

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.

GeeScore: job and jobseeker scoring platform screenshot

Also React and Node.js, same industry

GeeScore: job and jobseeker scoring platform

  • Business software and compliance
  • Web apps
  • Integrations

2018–2021

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.

AXENCIS: brand protection case management platform screenshot

Also Node.js, same industry

AXENCIS: brand protection case management platform

  • Business software and compliance
  • Web apps
  • Integrations

2024–2026

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.

Building something similar?

Tell us what you need and your industry. We will tell you what is realistic, what it would take, and show you the closest work we have done.

Are you ready to partner with us?

Our good-natured team is waiting to hear your business requirements.

Book a free project call