Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Configure inheritable permissions on an agent identity blueprint to preauthorize a base set of delegated scopes and application roles. Agent identities created from the blueprint automatically inherit those permissions without interactive consent prompts.
For conceptual background on how inheritable permissions relate to required resource access and direct permission grants, see Inheritable permissions and required resource access.
Prerequisites
- An existing agent identity blueprint already created and configured
- Either of the following permissions:
- Agent ID Developer role for managing agent identity blueprints owned by the user
- Agent ID Administrator role for managing agent identity blueprints
How inheritable permissions work
During token issuance for an agent identity, the platform merges eligible inherited scopes with the agent's requested delegated scopes. Inherited scopes appear in the access token's scp claim and inherited roles appear in the roles claim. For details on inheritance conditions and the relationship between declarations, grants, and effective permissions, see Inheritable permissions and required resource access.
Inheritance patterns
The concept article describes inheritance patterns at a high level. The following table shows the specific kind values used in the API when you configure inheritance per resource app:
| Inheritance | Kind | Description |
|---|---|---|
| All Allowed | allAllowed |
Inherit all available delegated scopes or application roles for the specified resource app. Newly granted scopes or roles on the agent identity blueprint principal are automatically included. |
| None | none |
Inherit no scopes or roles for the specified resource app. Use this to explicitly disable inheritance for scopes (noScopes) or roles (noRoles) independently. |
You can configure scopes and roles independently on the same resource. For example, you can inherit all scopes while inheriting no roles, or vice versa.
Inheritable permissions limitations
- Maximum of 60 resource apps per agent identity blueprint (for example, up to 60 entries in the inheritablePermissions collection). If you exceed this limit, reduce the number of resource apps to stay within the supported boundary.
Regularly review and monitor your inheritable permissions configuration. Reevaluate inherited scopes and roles to ensure they remain appropriate for your use case. Audit which inherited scopes and roles are being used by agents and remove any unused permissions from both the agent identity blueprint principal and the inheritable permissions list to maintain security hygiene.
Configure inheritable permissions (using Microsoft Graph)
To configure inheritable permissions, use the inheritablePermissions navigation property on the agentIdentityBlueprint application resource. Each entry specifies the scopes and roles inheritance configuration for a single resource app. Document your configuration decisions by tracking why each scope or role is inheritable and who approved it for audit purposes.
When specifying the resourceAppId in your requests, ensure you provide a valid GUID format. Invalid GUIDs result in 400 Bad Request errors.
Add all scopes and roles inheritance for Microsoft Graph
Request
POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "#microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "#microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Add all scopes and roles inheritance for multiple resources
You can configure inheritable permissions for multiple resource apps on the same blueprint. Each resource requires a separate POST request. The following example adds inheritance for both Microsoft Graph and SharePoint Online.
Request (Microsoft Graph)
POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "#microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "#microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Request (SharePoint Online)
POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0
{
"resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
"inheritableScopes": {
"@odata.type": "#microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "#microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0ff1-ce00-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Add scopes inheritance only (no roles)
To inherit delegated scopes but not application roles, set inheritableRoles to noRoles.
Request
POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "#microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "#microsoft.graph.noRoles",
"kind": "none"
}
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.noRoles",
"kind": "none"
}
}
Add roles inheritance only (no scopes)
To inherit application roles but not delegated scopes, set inheritableScopes to noScopes.
Request
POST https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions
Content-Type: application/json
OData-Version: 4.0
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "#microsoft.graph.noScopes",
"kind": "none"
},
"inheritableRoles": {
"@odata.type": "#microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.noScopes",
"kind": "none"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Update to disable roles inheritance
If an entry already exists for a resourceAppId, use PATCH to update it rather than attempting to create a duplicate entry, which would result in a 409 Conflict error. The following example disables role inheritance while keeping scope inheritance enabled.
Request
PATCH https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
Content-Type: application/json
OData-Version: 4.0
{
"inheritableRoles": {
"@odata.type": "#microsoft.graph.noRoles",
"kind": "none"
}
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.allAllowedScopes",
"kind": "allAllowed"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.noRoles",
"kind": "none"
}
}
Update to disable scopes inheritance
The following example disables scope inheritance while keeping role inheritance enabled.
Request
PATCH https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
Content-Type: application/json
OData-Version: 4.0
{
"inheritableScopes": {
"@odata.type": "#microsoft.graph.noScopes",
"kind": "none"
}
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications('bc057821-f236-49d6-9f2c-1ebf43e9437a')/inheritablePermissions/$entity",
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"inheritableScopes": {
"@odata.type": "microsoft.graph.noScopes",
"kind": "none"
},
"inheritableRoles": {
"@odata.type": "microsoft.graph.allAllowedRoles",
"kind": "allAllowed"
}
}
Delete existing inheritable permissions
Request
DELETE https://graph.microsoft.com/v1.0/applications/microsoft.graph.agentIdentityBlueprint/bc057821-f236-49d6-9f2c-1ebf43e9437a/inheritablePermissions/00000003-0000-0000-c000-000000000000
OData-Version: 4.0
Response
HTTP/1.1 204 No Content