Skip to main content
Version: 1.21.0

Get Application Ownership

The EasyLife 365 Identity API enables reading the owners of an Entra application registration or enterprise application. The response includes the live Entra owners together with the technical and business owners EasyLife 365 Identity records for it, plus whether the caller can be expected to write each bucket successfully.

Permissions​

Permission TypePermissions (Scope)
Delegated (work or school account)https://api.easylife365.cloud/admin/Config.ReadWrite.All
Applicationhttps://api.easylife365.cloud/admin/Identity.Ownership.Read.All, https://api.easylife365.cloud/admin/Identity.Ownership.ReadWrite.All, https://api.easylife365.cloud/admin/Identity.Config.ReadWrite.All
note

Any one of the listed application permissions grants access to this endpoint. Entra ID does not infer one role from another, so the calling application must hold at least one of them explicitly. Application permissions always require admin consent. See Create Application Registration for the app-only setup.

HTTP Request​

GET https://api.easylife365.cloud/admin/identity/v1/apps/{id}/ownership?type={app-type}
ParameterDescription
idThe Entra Object ID of the target application registration or enterprise application (its service principal).
typeappRegistration or enterpriseApplication. Required — the API does not infer it, because an app registration and its service principal are two objects with two owner lists.

HTTP Request Headers​

HeaderValue
Authorization****** (Required)

Request Body​

This request does not require or support any data.

Response​

A successful request returns the ownership document for the target object.

PropertyTypeDescription
app.objectIdStringThe Entra Object ID of the target application.
app.appIdStringThe target application's Application (client) ID.
app.displayNameStringThe target application's display name.
app.typeNumber0 for an app registration, 1 for an enterprise application.
app.isManagedBooleanWhether the target is tracked as managed by EasyLife 365 Identity. This value is maintained by scans and can lag a recent Entra change — use capabilities.identityIsOwner for the live answer.
applicationOwnersArrayThe owners on the Entra object itself: users and service principals.
technicalOwners.ownersArrayThe technical owners EasyLife 365 Identity records for the application.
technicalOwners.permissionsArrayWhat a technical owner is allowed to change, as stored on the application's settings.
businessOwners.ownersArrayThe business owners EasyLife 365 Identity records for the application.
businessOwners.permissionsArrayWhat a business owner is allowed to change, as stored on the application's settings.
capabilities.identityIsOwnerBooleanWhether the EasyLife 365 Identity service principal is currently an owner of the target — the prerequisite for writing application owners.
capabilities.canWriteApplicationOwnersBooleanWhether the caller can be expected to write applicationOwners successfully.
capabilities.canWriteTechnicalOwnersBooleanWhether the caller can be expected to write technicalOwners successfully.
capabilities.canWriteBusinessOwnersBooleanWhether the caller can be expected to write businessOwners successfully.
capabilities.reasonStringExplains a false capability above, when a reason is available.

Example 1: Retrieve the ownership of an app registration​

This example retrieves the ownership of the app registration with Object ID 57523d68-2913-4fc0-8f91-af100f37562f.

Request​

GET https://api.easylife365.cloud/admin/identity/v1/apps/57523d68-2913-4fc0-8f91-af100f37562f/ownership?type=appRegistration

Response​

{
"app": {
"objectId": "57523d68-2913-4fc0-8f91-af100f37562f",
"appId": "1b6f4b1a-8f2f-4e3b-9c8b-9a2f6e4d7c11",
"displayName": "Contoso Invoicing",
"type": 0,
"isManaged": true
},
"applicationOwners": [
{
"objectId": "00d0c474-abd1-4dda-a516-646a5046647c",
"type": "user",
"displayName": "Alice Johnson",
"userPrincipalName": "alice.johnson@contoso.com",
"mail": "alice.johnson@contoso.com",
"appId": null
},
{
"objectId": "5c3a4a2b-6b7a-4a8e-9b8b-2f6e4d7c11a9",
"type": "servicePrincipal",
"displayName": "EasyLife 365 Identity",
"userPrincipalName": null,
"mail": null,
"appId": "5c3a4a2b-6b7a-4a8e-9b8b-2f6e4d7c11a9"
}
],
"technicalOwners": {
"owners": [
{
"objectId": "56a64fe6-4de3-4489-9719-0a3776c7399b",
"type": "user",
"displayName": "Bob Smith",
"userPrincipalName": "bob.smith@contoso.com",
"mail": "bob.smith@contoso.com",
"appId": null
}
],
"permissions": ["manageCredentials", "manageSettings"]
},
"businessOwners": {
"owners": [],
"permissions": []
},
"capabilities": {
"identityIsOwner": true,
"canWriteApplicationOwners": true,
"canWriteTechnicalOwners": true,
"canWriteBusinessOwners": true,
"reason": null
}
}

Example 2: Retrieve the ownership of an app registration using PowerShell​

The following example demonstrates how to retrieve the ownership of an app registration using PowerShell. Before executing the script, ensure you've registered an application and obtained the TenantId and ClientId. Also, retrieve the correct URI and scope from this document.

$tenantId = "[TENANT_ID]"
$scope = "[SCOPE]"
$uri = "[URI]"

az login --tenant $tenantId | Out-Null

$accessToken = az account get-access-token `
--tenant $tenantId `
--scope $scope `
--query accessToken `
--output tsv

# Invoke the API and capture responses.
$headers = @{
"Authorization"= "******"
}

$ownership = Invoke-RestMethod -Method GET -Uri $uri -Headers $headers
Write-Information "Identity is an owner: $($ownership.capabilities.identityIsOwner)" -InformationAction Continue