To find app registrations without owners in Microsoft Entra ID, list the applications whose owner count is 0. An owner can be a user or a service principal, and can change the app without an administrator role. An app with no owner keeps working, so start with those that still hold a secret or certificate.
| Method | Best fit |
|---|---|
| PowerShell | A tenant-wide CSV of app registrations with no owner and how many credentials each holds. |
| Admin centre | Checking the owners of 1 app you already know. |
| Altivane | Recommended for recurring reviews, with each ownerless app's credentials and permissions on the same row. |
Before you start
Use an account in a role that can list applications, such as Global Reader, Security Administrator, Cloud Application Administrator or Application Administrator. The PowerShell example requests Application., the least privileged permission for listing applications; your organisation may require administrator consent.
Know what the list covers. It is the app registrations made in this tenant. Enterprise applications, including those of apps other organisations publish, have owners of their own and are left out. The owner filter is an advanced query that uses an index, which might not be up to date with very recent changes. The examples read and export; they don't add or remove any owner.
Option 1
Find app registrations without owners with PowerShell
Install the modules once, then connect and export the app registrations with no owner. The owner count filter runs in Microsoft Graph, so only ownerless apps come back.
# Install once, if the modules are not already installed.
Install-Module Microsoft.Graph.Authentication, Microsoft.Graph.Applications -Scope CurrentUser$ErrorActionPreference = 'Stop'
Connect-MgGraph -Scopes 'Application.Read.All' -NoWelcome
try {
# A filter on the owner count is an advanced query: it needs ConsistencyLevel and a count.
$query = @{
Filter = 'owners/$count eq 0'
ConsistencyLevel = 'eventual'
CountVariable = 'ownerlessCount'
Property = 'id', 'appId', 'displayName', 'createdDateTime', 'signInAudience',
'passwordCredentials', 'keyCredentials'
}
$apps = @(Get-MgApplication -All @query)
$report = @($apps | Sort-Object DisplayName | ForEach-Object {
[pscustomobject]@{
Application = $_.DisplayName
AppId = $_.AppId
Created = $_.CreatedDateTime
SignInAudience = $_.SignInAudience
Secrets = @($_.PasswordCredentials).Count
Certificates = @($_.KeyCredentials).Count
}
})
if ($report.Count -eq 0) {
Write-Output 'Every app registration has at least 1 owner.'
} else {
$report | Export-Csv -Path './apps-without-owners.csv' -NoTypeInformation -Encoding utf8
Write-Output "$($report.Count) app registrations have no owner."
}
} finally {
Disconnect-MgGraph | Out-Null
}The script keeps each ownerless app's name, application ID, creation date and sign-in audience, with how many secrets and certificates it holds. Start with the apps that hold any, and check their end dates. Change the filter to owners/$count eq 1 to list the apps 1 departure away from none.
Option 2
Check app owners in the admin centre
- Sign in to the Microsoft Entra admin centre for the correct tenant.
- Go to Entra ID > App registrations and select the application.
- Under Manage, select Owners. An empty list means the app has no owner.
- Leave without adding or removing an owner.
This suits checking 1 app you already have in mind. The admin centre shows owners 1 app at a time, so to find every app registration without one, use PowerShell or a report.
Option 3 ยท Recommended for recurring reviews
Report on app registrations without owners with Altivane
- Open Altivane and choose the tenant.
- Build the tenant's documents with the Applications scorecard report in full, so the apps are listed as well as counted.
- Open the tenant's Excel workbook and find the App Registrations Without sheet: each app with when it was created, its credential status, the application permissions it has been granted and its last sign-in.
- Read App Registrations for every app's owners, secrets, certificates and permissions.
Altivane puts the credential status and the granted permissions on the same row, so an ownerless app with a valid secret and broad permissions stands out. Last Sign-In comes from the service principal sign-in activity, which needs Microsoft Entra ID P1 or P2; without it the column is blank. The table goes to the workbook only to start; you can put it in the Word report too.
Contact usCommon questions
Does an app owned only by a service principal count as ownerless?
No. An application's owners can be users, its own service principal or another service principal, and the filter counts them all. Run the single-app check in the admin centre to see who or what owns it.
Why doesn't my API appear when I add API permissions?
Microsoft says both the API's app registration and the app you are adding permissions to need an owner; otherwise the API isn't listed when you request API permissions. An ownerless API on this list explains it.
How do I see which ownerless apps have expiring secrets?
Read the end dates of each app's secrets and certificates. See how to find expiring app secrets, and how to review app permissions for what each app can reach.
Microsoft references
Technical references checked on 6 November 2026. The example scripts have been reviewed and syntax checked; they have not been run against a live tenant.
- application resource type and its owners filter
- Get-MgApplication reference
- Manage Microsoft Entra applications using Microsoft Graph
- Advanced query capabilities on Microsoft Entra ID objects
- Add an owner to an application using Microsoft Graph
- Add app roles to your application, with assigning its owner