The apps
Both are shared multi-tenant apps used by every MSP on MSPortal. MSPortal.ai Integration is publisher-verified (Scaling Ops Consulting Inc., Microsoft Partner Network ID 7019509).
MSPortal holds no GDAP relationships and no Partner Center access, and never asks for Global Administrator or Privileged Role Administrator rights. Microsoft only lets one of those two roles approve application permissions, so one of them approves the connection in each client tenant, once.
What the apps can access
MSPortal.ai Integration: application permissions
These are granted when a client admin connects a tenant. All of them are read-only.
The syncs sign in as the app itself. They don’t use any user’s sign-in or stored user token.
MSPortal.ai Integration: delegated permissions
Tenants connected before November 2026 may also show
SecurityEvents.ReadWrite.All (application) or offline_access (delegated). MSPortal no longer requests or uses either one. SecurityEvents.ReadWrite.All only allows updating the status of security alerts and Secure Score recommendations; it gives no access to users, mail, files, roles or credentials. To remove both, see Remove permissions MSPortal no longer uses.Calendar app
Microsoft grants this permission for every mailbox in your tenant. MSPortal only syncs the calendars its Sync scope setting allows; see Limit which calendars MSPortal syncs.
How MSPortal protects the apps
- Read-only access. The apps hold no permission to assign roles, change applications or service principals, or add credentials, so the app can’t raise its own privileges or plant credentials in your tenant.
- App instance property lock is on for both apps, for all properties, in every tenant. Nobody can add credentials to MSPortal’s service principal inside your tenant.
- Dedicated tenant. The app registrations live in an Entra tenant used for nothing else, with administrative access limited to a single administrator, protected by phishing-resistant passkeys.
- Secret rotation every six months, inside Microsoft’s recommendation of less than 12 months. If a compromise is suspected, MSPortal rotates within an hour; you don’t need to do anything, because your consent is granted to the app, not to a particular secret.
- Credential monitoring every 10 minutes. An automated check alerts MSPortal when either app gains, or has replaced, a secret, certificate or federated credential, or requests or is granted a permission outside its approved list.
- Notification. MSPortal notifies affected MSPs within 24 hours of becoming aware of a compromise of these apps. Report a concern to security@msportal.ai.
Where sign-ins appear, and the expected sources
Microsoft records MSPortal’s sign-ins into your tenant only in your tenant’s logs, so you are the one who can see them.-
Service principal sign-ins are MSPortal.ai Integration syncing your data. They all come from your MSP’s MSPortal region:
A service principal sign-in by MSPortal.ai Integration from outside your region’s range is not MSPortal.
- User sign-ins for the same app are people signing in to MSPortal with Microsoft, and the admin approving a tenant connection. They come from each person’s own location.
- The calendar app also signs in from MSPortal’s web hosting, which doesn’t use fixed addresses, so it has no fixed range.
78668eb2-8553-4d0c-ae67-a55462892a3c.
Steps you can take
Alert on sign-ins from outside the expected range
If your tenant sends sign-in logs to a Log Analytics workspace or Microsoft Sentinel (this needs Microsoft Entra ID P1 or P2), add an alert rule on this query:1
Send sign-in logs to Log Analytics
In the Microsoft Entra admin center, open Diagnostic settings (under Monitoring & health) and add a setting that sends ServicePrincipalSignInLogs and AuditLogs to your workspace.
2
Create the alert
In the Azure portal, open the workspace, go to Alerts > Create > Alert rule, choose Custom log search, paste the query, and alert when it returns any rows.
Alert on changes to MSPortal’s app in your tenant
Watch for anyone adding credentials or permissions to MSPortal’s service principal in your tenant:Review what you’ve granted
1
Open the app
In the Microsoft Entra admin center, open Enterprise applications and select MSPortal.ai Integration.
2
Review permissions
Select Permissions to see every permission your tenant has granted, under Admin consent.
Remove permissions MSPortal no longer uses
If your tenant still showsSecurityEvents.ReadWrite.All or offline_access, an administrator can remove them with Microsoft Graph PowerShell. Run this once in each tenant; it removes only those two grants and leaves everything MSPortal uses in place.
Limit which calendars MSPortal syncs
In MSPortal, go to Settings > Integrations, expand Microsoft 365 Calendar, and set Sync scope. The options are Individually approved, Company role users and All configured users. Individually approved is the narrowest: MSPortal syncs only the users you approve one by one.Disconnect a tenant
To stop MSPortal’s access to a tenant completely, open Enterprise applications > MSPortal.ai Integration > Properties in that tenant and set Enabled for users to sign-in? to No, or delete the enterprise application.- New tokens stop immediately. Tokens already issued can stay valid until they expire, typically within about an hour.
- This also stops people in that tenant from signing in to MSPortal with Microsoft.
- Disconnecting in MSPortal alone doesn’t remove consent on the Microsoft side.