Solutions2Share
Trust Center

Governance Autopilot

Governance Autopilot reads a Microsoft 365 tenant’s configuration and activity signals through Microsoft Graph using read-only, admin-consented application permissions, evaluates them against a catalog of governance policies, and stores the derived results in Solutions2Share-operated Azure services — it never modifies a customer’s tenant data.

Microsoft 365 Certified

Governance Autopilot is a new Solutions2Share product and is not yet Microsoft 365 Certified. Solutions2Share intends to complete Microsoft 365 App Certification as part of the product roadmap. Until certification is granted, the application is developed under the Microsoft Security Development Lifecycle and the practices described on this page.

Data Management Practices

All data is processed on behalf of the customer’s tenant and is isolated per tenant (see Architecture And Flow Diagram). Governance Autopilot performs read-only collection; it does not write to, or change, any customer tenant data. Data is stored in Microsoft Azure data centres operated by Solutions2Share in the Germany West Central (EU) region; the web front-ends are served from the West Europe (EU) region. No customer data leaves the EU.

The application accesses, processes and stores the following data types:

Identity & directory data

User accounts, groups and group memberships, directory roles, and organisation properties. Storage & retention: stored in Azure SQL Database. Current values are kept for the duration of the customer’s subscription; historical versions are retained to show governance trends over time (see Change history below). All customer data is retained for the duration of the subscription and deleted when the subscription ends.

Microsoft Teams collaboration data

Microsoft Teams channels — names, descriptions and membership — used to inventory workspaces and detect ownerless or guest-heavy collaboration. Message content is not read. Storage & retention: stored in Azure SQL Database; same retention as above.

SharePoint & files metadata

SharePoint site inventory and file/site metadata used for storage-hygiene analysis. Governance Autopilot does not extract or retain document contents. Storage & retention: stored in Azure SQL Database; same retention as above.

Audit logs

Directory and sign-in audit logs, used to detect stale sign-ins and gaps in audit configuration. Storage & retention: raw crawl output is first written to an Azure Data Lake per tenant, then merged into Azure SQL Database; same retention as above.

Tenant configuration & policy

Conditional Access and authorization policies, directory role assignments (RBAC), access-review definitions and decisions, and application / service-principal registrations — read to evaluate governance posture. Storage & retention: stored in Azure SQL Database; same retention as above.

Governance analysis results

Derived scores, policy findings, recommendations and analysis snapshots — computed by Governance Autopilot, not read from the tenant. Storage & retention: stored in Azure SQL Database for the life of the subscription. Shareable report links are optional and time-limited (default 14 days, maximum 90 days).

Signed-in administrator identity

Display name, email/UPN, object ID and tenant ID of the administrator who signs in, used to establish identity and gate access. Storage & retention: stored in Azure SQL Database for the life of the subscription.

Change history. Configuration data is versioned (slowly-changing-dimension history) so the product can show how a tenant’s governance posture changes over time. Immutable audit events are appended, not overwritten.

Microsoft Graph

Governance Autopilot uses the Microsoft Graph permissions listed below, on a single multi-tenant Microsoft Entra app registration. Tenant data collection uses read-only application permissions; a tenant administrator grants consent once and background analysis then runs with no user present. The only delegated permission is User.Read, used solely to sign the administrator in — the browser never receives a Microsoft Graph token for tenant data. Scope names are verbatim from the app registration and are rendered as code.

ScopeDescriptionJustificationAdmin Consent RequiredType
AccessReview.Read.AllRead all access reviews.Evaluate access-review coverage and outcomes.YesApplication
Application.Read.AllRead all applications.Detect over-privileged app registrations and service principals.YesApplication
AuditLog.Read.AllRead all audit log data.Detect stale sign-ins and gaps in audit configuration.YesApplication
Channel.ReadBasic.AllRead the names and descriptions of all channels.Inventory Microsoft Teams channels for workspace governance.YesApplication
ChannelMember.Read.AllRead the members of all channels.Detect guest and membership sprawl in Teams channels.YesApplication
Directory.Read.AllRead directory data.Read organisation, roles and directory objects underpinning identity-governance checks.YesApplication
Files.Read.AllRead files in all site collections.Analyse file and site metadata for storage-hygiene governance.YesApplication
Group.Read.AllRead all groups.Inventory Microsoft 365 groups and Teams for lifecycle, ownership and naming analysis.YesApplication
Policy.Read.AllRead your organization’s policies.Evaluate Conditional Access, authorization and external-sharing policy posture.YesApplication
RoleManagement.Read.DirectoryRead all directory RBAC settings.Detect standing privileged access and separation-of-duties conflicts.YesApplication
Sites.Read.AllRead items in all site collections.SharePoint site inventory and storage/structure analysis.YesApplication
User.ReadSign in and read user profile.Sign the administrator in and establish their identity in the app.NoDelegated
User.Read.AllRead all users’ full profiles.Inventory user accounts to detect stale, disabled, unlicensed and guest identities.YesApplication

Full descriptions of each permission are published in the Microsoft Graph permissions reference.

SharePoint / other workload permissions

Not applicable in the current release. Governance Autopilot reads SharePoint data through Microsoft Graph (Sites.Read.All, Files.Read.All) only. A future release may add advanced external-sharing checks that require a SharePoint tenant-administration read permission with certificate-based application-only authentication; this is planned and not used today.

Microsoft Teams Apps Security And Compliance

Not applicable. Governance Autopilot is a web application. It is not distributed as a Microsoft Teams app and does not run inside Microsoft Teams.

Architecture And Flow Diagram

Azure architecture for Governance Autopilot in the Germany West Central region, drawn with official Azure service icons in the nested Azure / Subscription / Resource group style. The resource group groups SQL Server and SQL Database, the App Service plan with App Service Back and App Service Front, and Application Insights with Log Analytics, plus a Storage account, a Function App, Service Bus and Key vault. Two bands below show Microsoft Entra ID (holding the app registration) and Web App (the product is delivered as a web app, not a Teams app). Orange connectors show App Service Back communicating with SQL Database, Application Insights, Service Bus and Key vault; App Service Front calling App Service Back; the Function App connected to Service Bus and the Storage account; SQL Server to SQL Database; Application Insights to Log Analytics; the app registration authorising App Service Back; and the Web App surfacing App Service Front.

Data flow: (1) the tenant administrator signs in to App Service Front (the web front-end), which calls App Service Back (the Governance API); (2) App Service Back validates the product entitlement with the Solutions2Share License Management Center and enqueues an analysis on Service Bus; (3) the Function App reads the customer’s Microsoft 365 tenant through Microsoft Graph (read-only, application-only) and writes raw data to the Storage account; (4) the data is merged into Azure SQL (staging → history) and scored against the governance policies; (5) App Service Back reads the results back for App Service Front. All compute emits telemetry to Application Insights and Log Analytics.

Governance Autopilot uses a hybrid authentication model on one multi-tenant Microsoft Entra app registration, with three deliberately separated flows:

  1. Sign-in (delegated). The administrator signs in with their Microsoft work account. The app establishes identity only — no Microsoft Graph permission is requested at sign-in.
  2. Consent (application). The administrator grants the read-only Graph application permissions once. Consent is a governed, manual step and is never performed automatically.
  3. Analysis (application-only). Background workers authenticate to Microsoft Graph using a certificate held in Azure Key Vault (no shared client secret) and read tenant data. The browser never receives a Graph token.

Per-tenant isolation is enforced by the tenant identifier carried in every token; tokens and data cannot cross tenants.

Resource Endpoints

Domains that a customer’s network or browser must be able to reach.

NameComments
login.microsoftonline.comMicrosoft Entra ID — administrator sign-in and OAuth token issuance (browser and backend).
fonts.googleapis.comGoogle Fonts stylesheet for the web UI (browser).
fonts.gstatic.comGoogle Fonts font files (browser).
governance-autopilot.solutions2share.comThe Governance Autopilot web UI and its API (browser).

Backend service egress (informational)

Outbound calls made by the Solutions2Share-operated backend. These are not customer-configurable and are listed for transparency.

NameComments
graph.microsoft.comMicrosoft Graph — read-only tenant data collection (application-only).
s2slicensing.azurewebsites.netSolutions2Share License Management Center — product entitlement validation.
*.database.windows.netAzure SQL Database — analysis storage.
*.vault.azure.netAzure Key Vault — Graph signing certificate retrieval.
*.blob.core.windows.net, *.dfs.core.windows.netAzure Storage / Data Lake — raw crawl data.

Dependencies

Third-party libraries used by Governance Autopilot. Versions reflect the current release.

Server

NameVersionUrlLicense
Azure.Identity1.13.1licenses.nuget.org/MITMIT
Azure.Security.KeyVault.Certificates4.7.0licenses.nuget.org/MITMIT
Azure.Security.KeyVault.Secrets4.8.0licenses.nuget.org/MITMIT
Azure.Messaging.ServiceBus7.19.0licenses.nuget.org/MITMIT
Azure.Storage.Files.DataLake12.24.0licenses.nuget.org/MITMIT
Microsoft.Graph5.95.0licenses.nuget.org/MITMIT
Microsoft.Graph.Core3.2.4licenses.nuget.org/MITMIT
Microsoft.Identity.Web4.0.1licenses.nuget.org/MITMIT
Microsoft.Identity.Client4.78.0licenses.nuget.org/MITMIT
Microsoft.Identity.Client.Extensions.Msal4.78.0licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore8.0.22licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore.Relational8.0.22licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore.SqlServer8.0.22licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore.InMemory8.0.22licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore.Design8.0.22licenses.nuget.org/MITMIT
Microsoft.EntityFrameworkCore.Tools8.0.22licenses.nuget.org/MITMIT
Microsoft.Extensions.Configuration.AzureAppConfiguration8.4.0licenses.nuget.org/MITMIT
Microsoft.ApplicationInsights.WorkerService2.23.0licenses.nuget.org/MITMIT
Microsoft.Azure.Functions.Worker2.51.0licenses.nuget.org/MITMIT
Microsoft.Azure.Functions.Worker.ApplicationInsights2.50.0licenses.nuget.org/MITMIT
Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore2.1.0licenses.nuget.org/MITMIT
Microsoft.Azure.Functions.Worker.Sdk2.0.7licenses.nuget.org/MITMIT
AutoMapper16.1.1licenses.nuget.org/MITMIT
Newtonsoft.Json13.0.4licenses.nuget.org/MITMIT
QuestPDF2026.2.3licenses.nuget.org/MITMIT (Community)
Swashbuckle.AspNetCore6.6.2licenses.nuget.org/MITMIT
System.ComponentModel.Annotations5.0.0licenses.nuget.org/MITMIT

Client Packages

NameVersionUrlLicense
@azure/msal-browser5.10.0npmjs.com/package/@azure/msal-browserMIT
@azure/msal-react5.4.0npmjs.com/package/@azure/msal-reactMIT
@radix-ui/react-slot1.2.5npmjs.com/package/@radix-ui/react-slotMIT
@react-pdf/renderer4.5.1npmjs.com/package/@react-pdf/rendererMIT
@reduxjs/toolkit2.11.2npmjs.com/package/@reduxjs/toolkitMIT
@tanstack/react-query5.100.6npmjs.com/package/@tanstack/react-queryMIT
axios1.16.0npmjs.com/package/axiosMIT
class-variance-authority0.7.1npmjs.com/package/class-variance-authorityApache-2.0
clsx2.1.1npmjs.com/package/clsxMIT
framer-motion12.38.0npmjs.com/package/framer-motionMIT
i18next26.0.10npmjs.com/package/i18nextMIT
lucide-react1.8.0npmjs.com/package/lucide-reactISC
react19.2.4npmjs.com/package/reactMIT
react-dom19.2.4npmjs.com/package/react-domMIT
react-i18next17.0.7npmjs.com/package/react-i18nextMIT
react-redux9.2.0npmjs.com/package/react-reduxMIT
react-router-dom7.13.1npmjs.com/package/react-router-domMIT
tailwind-merge3.6.0npmjs.com/package/tailwind-mergeMIT

Build and test tooling

Used only to build and test the app; not shipped to the browser.

NameVersionUrlLicense
vite7.3.1npmjs.com/package/viteMIT
@vitejs/plugin-react4.7.0npmjs.com/package/@vitejs/plugin-reactMIT
vitest4.1.5npmjs.com/package/vitestMIT
@vitest/coverage-v84.1.5npmjs.com/package/@vitest/coverage-v8MIT
@playwright/test1.59.1npmjs.com/package/@playwright/testApache-2.0
@testing-library/react16.3.2npmjs.com/package/@testing-library/reactMIT
@testing-library/jest-dom6.9.1npmjs.com/package/@testing-library/jest-domMIT
@testing-library/user-event14.6.1npmjs.com/package/@testing-library/user-eventMIT
jsdom29.1.1npmjs.com/package/jsdomMIT
msw2.14.6npmjs.com/package/mswMIT
tailwindcss4.2.1npmjs.com/package/tailwindcssMIT
@tailwindcss/vite4.2.1npmjs.com/package/@tailwindcss/viteMIT
oxlint1.69.0npmjs.com/package/oxlintMIT
oxfmt0.54.0npmjs.com/package/oxfmtMIT
size-limit11.2.0npmjs.com/package/size-limitMIT
@size-limit/preset-app11.2.0npmjs.com/package/@size-limit/preset-appMIT
@typescript/native-preview7.0.0-devnpmjs.com/package/@typescript/native-previewApache-2.0
@types/node24.12.0npmjs.com/package/@types/nodeMIT
@types/react19.2.14npmjs.com/package/@types/reactMIT
@types/react-dom19.2.3npmjs.com/package/@types/react-domMIT

Governance Autopilot uses no third-party analytics or advertising trackers. At runtime, customer data is sent only to Microsoft/Azure services and the Solutions2Share License Management Center; web fonts are loaded from the Google Fonts CDN (fonts.googleapis.com, fonts.gstatic.com).

Didn't find your answer?Contact Us