KB: Understanding Microsoft-Owned APIs, SPs, and API Permissions
1. Microsoft-Owned APIs behave differently
-
The App Registration lives in Microsoft’s tenant (hidden from you)
-
You only see the Service Principal (SP) in your tenant
-
The Microsoft API SP never shows API permissions
-
This is expected and correct
Example:
Power Platform API → AppID 8578e004-a5c6-46e7-913e-12f58912df43 (Microsoft-owned)
2. API permissions are ALWAYS stored on the client application, not on the Microsoft API
When you grant a permission like:
It gets added to the client application's SP/App Registration, e.g.:
"My Application"
—not—
Power Platform API SP
So the client app will show:
✔ API permissions
✔ Delegated permissions
✔ Admin consent
The Microsoft API SP will show:
❌ Nothing
❌ No API permissions
❌ No scopes
❌ No roles
3. Why?
Because permissions are modeled as:
Client App → requests → permission → from → Resource API
The resource API (Microsoft-owned SP) does NOT keep track of who is calling it.
4. If you find a Microsoft API SP later and want to know “which app is using this API?”
You can reverse-search by the API’s AppID.
CLI:
Graph:
This returns all client applications that added permissions for that API.
5. How to interpret what you see in the portal
When you open the client app (your app):
You see:
-
API permissions
-
Which Microsoft APIs it calls
-
Which scopes it needs
-
Who granted the consent
When you open the Microsoft API SP:
You see:
-
Nothing in API permissions
-
No scopes
-
No roles
-
Only basic properties
This is expected.
6. What actually happened in your case
You saw:
-
A Microsoft API SP: Power Platform API
-
A custom client app: "My Application"
-
API permissions were visible only on the client app
✔ Correct
✔ Expected
✔ This is how Entra ID models delegated permissions
7. The golden rule
API permissions always belong to the client app, never the Microsoft API.
To see who uses a Microsoft API → inspect the client apps, not the API SP.
To find those client apps → search by
resourceAppId.
Comments
Post a Comment