Skip to content

Commit 6e54ab5

Browse files
authored
Merge pull request #28338 from lieric-msft/lieric/managerapplications
Lieric/managerapplications
2 parents e2f7df9 + a5b8f99 commit 6e54ab5

6 files changed

Lines changed: 184 additions & 2 deletions

File tree

api-reference/beta/api/agentidentityblueprint-get.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ Content-Type: application/json
107107
"disabledByMicrosoftStatus": null,
108108
"displayName": "My Agent Blueprint",
109109
"groupMembershipClaims": null,
110+
"managerApplications": ["77504268-3426-435e-99c0-9bc8656bc20e"],
110111
"publisherDomain": "contoso.onmicrosoft.com",
111112
"signInAudience": "AzureADMyOrg",
112113
"tags": [],

api-reference/beta/api/agentidentityblueprint-update.md

Lines changed: 149 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ PATCH /applications/{id}/microsoft.graph.agentIdentityBlueprint
5050

5151
In the request body, supply the values for relevant fields that should be updated. Existing properties that aren't included in the request body maintains their previous values or be recalculated based on changes to other property values. For best performance you shouldn't include existing values that haven't changed.
5252

53+
| Property | Type | Description |
54+
|:---------|:-----|:------------|
55+
| displayName | String | The display name for the agent identity blueprint. |
56+
| managerApplications | Guid collection | A collection of application IDs for applications designated as managers of this agent identity blueprint. Manager applications can create agent blueprint principals, agent identities, and agent users for their managed blueprints without requiring high-privileged permissions such as `AgentIdentityBlueprintPrincipal.ReadWrite.All`. Currently, only Microsoft first-party application IDs can be set as values. Maximum of 10 values. Not nullable. |
5357

5458
## Response
5559

@@ -59,7 +63,9 @@ For information about errors returned by agent identity APIs, see [Agent identit
5963

6064
## Examples
6165

62-
### Request
66+
### Example 1: Update the displayName of an agent identity blueprint
67+
68+
#### Request
6369

6470
The following example shows a request.
6571
# [HTTP](#tab/http)
@@ -84,7 +90,7 @@ Content-Type: application/json
8490
---
8591

8692

87-
### Response
93+
#### Response
8894

8995
The following example shows the response.
9096
<!-- {
@@ -94,3 +100,144 @@ The following example shows the response.
94100
HTTP/1.1 204 No Content
95101
```
96102

103+
### Example 2: Update managerApplications on an agent identity blueprint
104+
105+
The `managerApplications` property is fully writable by both first-party (1P) and third-party (3P) callers on agent identity blueprints.
106+
107+
#### Request
108+
109+
The following example shows a request.
110+
111+
<!-- {
112+
"blockType": "request",
113+
"name": "update_agentidentityblueprint_managerapplications"
114+
}-->
115+
```http
116+
PATCH https://graph.microsoft.com/beta/applications/graph.agentIdentityBlueprint/e5006f10-6462-4816-97ad-7f5a53204d11
117+
Content-Type: application/json
118+
119+
{
120+
"managerApplications": [
121+
"77504268-3426-435e-99c0-9bc8656bc20e"
122+
]
123+
}
124+
```
125+
126+
#### Response
127+
128+
The following example shows the response.
129+
130+
<!-- {
131+
"blockType": "response"
132+
} -->
133+
```http
134+
HTTP/1.1 204 No Content
135+
```
136+
137+
### Example 3: Attempt to add a non-first-party application as a manager
138+
139+
Only Microsoft first-party application IDs can currently be set as values in the `managerApplications` collection.
140+
141+
#### Request
142+
143+
The following example shows a request attempting to add a non-first-party application.
144+
145+
<!-- {
146+
"blockType": "request",
147+
"name": "update_agentidentityblueprint_managerapplications_non_first_party_error"
148+
}-->
149+
```http
150+
PATCH https://graph.microsoft.com/beta/applications/graph.agentIdentityBlueprint/e5006f10-6462-4816-97ad-7f5a53204d11
151+
Content-Type: application/json
152+
153+
{
154+
"managerApplications": [
155+
"b43716e4-8cd1-4e88-b4ef-94611f4c6c46"
156+
]
157+
}
158+
```
159+
160+
#### Response
161+
162+
The following example shows the error response.
163+
164+
<!-- {
165+
"blockType": "response",
166+
"truncated": true,
167+
"@odata.type": "microsoft.graph.error"
168+
} -->
169+
```http
170+
HTTP/1.1 400 Bad Request
171+
Content-type: application/json
172+
173+
{
174+
"error": {
175+
"code": "BadRequest",
176+
"message": "Application b43716e4-8cd1-4e88-b4ef-94611f4c6c46 is not a Microsoft first-party application. Managers must be Microsoft first-party applications.",
177+
"innerError": {
178+
"date": "2026-01-09T18:19:01",
179+
"request-id": "b67ef789-eb9c-4639-8847-4425f27c3c13",
180+
"client-request-id": "7b3c375e-a647-4e57-9452-6a8539b2256f"
181+
}
182+
}
183+
}
184+
```
185+
186+
### Example 4: Attempt to exceed the limit of 10 manager applications
187+
188+
Applications are limited to a maximum of 10 manager applications.
189+
190+
#### Request
191+
192+
The following example shows a request attempting to set 11 manager applications.
193+
194+
<!-- {
195+
"blockType": "request",
196+
"name": "update_agentidentityblueprint_managerapplications_exceed_limit_error"
197+
}-->
198+
```http
199+
PATCH https://graph.microsoft.com/beta/applications/graph.agentIdentityBlueprint/e5006f10-6462-4816-97ad-7f5a53204d11
200+
Content-Type: application/json
201+
202+
{
203+
"managerApplications": [
204+
"030bd5f7-db55-4925-959e-5cd332851a0d",
205+
"1bcc0f3a-18c2-44cb-851a-26e344c2b1bd",
206+
"6ed7705a-21de-4de9-9e98-95d1a2b5caa5",
207+
"1925068d-8f9f-4fe8-8d4f-af7d70dce238",
208+
"383b3cea-2ad2-4ca9-8c86-7f66e507ee77",
209+
"00f03cc4-3d1f-4b44-8bfa-fca7b181cbb9",
210+
"9d089274-e6dc-4640-bae2-0c88b4dc89a3",
211+
"8ea5293f-5d07-45dd-8333-64edfd907423",
212+
"2a0c3ca6-102f-4f22-a19e-4e5d1d99337d",
213+
"d40473a1-1d8c-4db9-bc87-1296c90e516b",
214+
"d902c7bd-7fe6-486a-86e8-00da01936fba"
215+
]
216+
}
217+
```
218+
219+
#### Response
220+
221+
The following example shows the error response.
222+
223+
<!-- {
224+
"blockType": "response",
225+
"truncated": true,
226+
"@odata.type": "microsoft.graph.error"
227+
} -->
228+
```http
229+
HTTP/1.1 400 Bad Request
230+
Content-type: application/json
231+
232+
{
233+
"error": {
234+
"code": "BadRequest",
235+
"message": "The number of ManagerApplications exceeds the limit. A blueprint can have only 10 ManagerApplications values.",
236+
"innerError": {
237+
"date": "2026-01-09T18:19:01",
238+
"request-id": "b67ef789-eb9c-4639-8847-4425f27c3c13",
239+
"client-request-id": "7b3c375e-a647-4e57-9452-6a8539b2256f"
240+
}
241+
}
242+
}
243+
```

api-reference/beta/resources/agentidentityblueprint.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ This resource is an open type that allows additional properties beyond those doc
8282
|identifierUris|String collection| Also known as App ID URI, this value is set when an agent identity blueprint is used as a resource app. The identifierUris acts as the prefix for the scopes you reference in your API's code, and it must be globally unique across Microsoft Entra ID. Not nullable. Inherited from [application](../resources/application.md).|
8383
|info|[informationalUrl](../resources/informationalurl.md)|Basic profile information of the agent identity blueprint, such as it's marketing, support, terms of service, and privacy statement URLs. The terms of service and privacy statement are surfaced to users through the user consent experience. Inherited from [application](../resources/application.md).|
8484
|keyCredentials|[keyCredential](../resources/keycredential.md) collection|The collection of key credentials associated with the agent identity blueprint. Not nullable. Inherited from [application](../resources/application.md).|
85+
|managerApplications|Guid collection|A collection of application IDs for applications designated as managers of this agent identity blueprint. Manager applications can create agent blueprint principals, agent identities, and agent users for their managed blueprints — without requiring high-privileged permissions such as `AgentIdentityBlueprintPrincipal.ReadWrite.All`. Currently, only Microsoft first-party application IDs can be set as values. Maximum of 10 values. Not nullable. Returned by default.|
8586
|optionalClaims|[optionalClaims](../resources/optionalclaims.md)|Application developers can configure optional claims in their Microsoft Entra agent identity blueprints to specify the claims that are sent to their application by the Microsoft security token service. Inherited from [application](../resources/application.md).|
8687
|passwordCredentials|[passwordCredential](../resources/passwordcredential.md) collection|The collection of password credentials associated with the agent identity blueprint. Not nullable. Inherited from [application](../resources/application.md).<br/><br/>You can also add passwords after creating the agent identity blueprint by calling the [Add password](../api/agentidentityblueprint-addpassword.md) API.|
8788
|publisherDomain|String|The verified publisher domain for the agent identity blueprint. Read-only. Inherited from [application](../resources/application.md).|
@@ -160,6 +161,7 @@ The following JSON representation shows the resource type. Only a subset of all
160161
"@odata.type": "microsoft.graph.keyCredential"
161162
}
162163
],
164+
"managerApplications": ["Guid"],
163165
"passwordCredentials": [
164166
{
165167
"@odata.type": "microsoft.graph.passwordCredential"

api-reference/beta/resources/application.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ This resource supports:
8989
| isFallbackPublicClient | Boolean | Specifies the fallback application type as public client, such as an installed application running on a mobile device. The default value is `false`, which means the fallback application type is confidential client such as a web app. There are certain scenarios where Microsoft Entra ID can't determine the client application type. For example, the [ROPC](https://tools.ietf.org/html/rfc6749#section-4.3) flow where the application is configured without specifying a redirect URI. In those cases Microsoft Entra ID interprets the application type based on the value of this property.|
9090
| keyCredentials | [keyCredential](keycredential.md) collection | The collection of key credentials associated with the application. Not nullable. Supports `$filter` (`eq`, `not`, `ge`, `le`).|
9191
| logo | Stream | The main logo for the application. Not nullable. |
92+
| managerApplications | Guid collection | A collection of application IDs for applications designated as managers of this application. Manager applications can create service principals for the applications they manage. Currently, only Microsoft first-party application IDs can be set as values. Maximum of 10 values. Not nullable. Read-only for third-party (3P) callers; writes by 3P callers are rejected with a `400 Bad Request` error. Returned only on `$select`. |
9293
| nativeAuthenticationApisEnabled | nativeAuthenticationApisEnabled | Specifies whether the Native Authentication APIs are enabled for the application. The possible values are: `none`and `all`. Default is `none`. For more information, see [Native Authentication](/entra/external-id/customers/concept-native-authentication). |
9394
| notes | String | Notes relevant for the management of the application. |
9495
| oauth2RequiredPostResponse | Boolean | Specifies whether, as part of OAuth 2.0 token requests, Microsoft Entra ID allows POST requests, as opposed to GET requests. The default is `false`, which specifies that only GET requests are allowed. |
@@ -184,6 +185,7 @@ The following JSON representation shows the resource type.
184185
"isFallbackPublicClient": false,
185186
"keyCredentials": [{"@odata.type": "microsoft.graph.keyCredential"}],
186187
"logo": "Stream",
188+
"managerApplications": ["Guid"],
187189
"nativeAuthenticationApisEnabled": "String",
188190
"notes": "String",
189191
"oauth2RequiredPostResponse": false,

changelog/Microsoft.DirectoryServices.json

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,31 @@
11
{
22
"changelog": [
3+
{
4+
"ChangeList": [
5+
{
6+
"Id": "745059d3-8cd1-4100-a646-c3508fa939d9",
7+
"ApiChange": "Property",
8+
"ChangedApiName": "managerApplications",
9+
"ChangeType": "Addition",
10+
"Description": "Added the **managerApplications** property to the [agentIdentityBlueprint](https://learn.microsoft.com/en-us/graph/api/resources/agentIdentityBlueprint?view=graph-rest-beta) resource.",
11+
"Target": "agentIdentityBlueprint"
12+
},
13+
{
14+
"Id": "745059d3-8cd1-4100-a646-c3508fa939d9",
15+
"ApiChange": "Property",
16+
"ChangedApiName": "managerApplications",
17+
"ChangeType": "Addition",
18+
"Description": "Added the **managerApplications** property to the [application](https://learn.microsoft.com/en-us/graph/api/resources/application?view=graph-rest-beta) resource.",
19+
"Target": "application"
20+
}
21+
],
22+
"Id": "745059d3-8cd1-4100-a646-c3508fa939d9",
23+
"Cloud": "Prod",
24+
"Version": "beta",
25+
"CreatedDateTime": "2026-03-16T16:11:03.4585233Z",
26+
"WorkloadArea": "Identity and access",
27+
"SubArea": "Directory management"
28+
},
329
{
430
"ChangeList": [
531
{

concepts/whats-new-overview.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,10 @@ Added support for protection policy offboarding status and timestamp tracking in
199199

200200
Use the new cloud licensing APIs to manage tenant, user, and group licensing data for Microsoft 365 services. These APIs provide programmatic access to allotments, assignments, assignment errors, subscription lifecycles, and waiting members. For more information, see [Use the cloud licensing API in Microsoft Graph (preview)](/graph/api/resources/cloud-licensing-api-overview?view=graph-rest-beta&preserve-view=true).
201201

202+
### Identity and access | Directory management
203+
204+
Added the **managerApplications** property to the [application](/graph/api/resources/application?view=graph-rest-beta&preserve-view=true) and [agentIdentityBlueprint](/graph/api/resources/agentidentityblueprint?view=graph-rest-beta&preserve-view=true) resources to specify applications designated as managers of an application. On the base **application** resource, this property is read-only for third-party (3P) callers. On the **agentIdentityBlueprint** resource, manager applications can create agent blueprint principals, agent identities, and agent users for their managed agent blueprints without requiring high-privileged permissions such as `AgentIdentityBlueprintPrincipal.ReadWrite.All`.
205+
202206
### Files
203207

204208
Added [driveItem: archive](/graph/api/driveitem-archive?view=graph-rest-beta&preserve-view=true) and [driveItem: unarchive](/graph/api/driveitem-unarchive?view=graph-rest-beta&preserve-view=true) to enable organizations to archive and unarchive [driveItem](/graph/api/resources/driveitem?view=graph-rest-beta&preserve-view=true) objects.

0 commit comments

Comments
 (0)