ExternalConnection.ReadWrite.OwnedBy
Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections.
In short
ExternalConnection.ReadWrite.OwnedBy is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the ExternalConnection category. Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections. It grants read and write access to resources. Application permissions always require admin consent.
Permission Details
Read and write external connections
Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections.
f431331c-49a6-499f-be1c-62af19c34a9d
Read and write external connections
Allows the app to read and write settings of external connections on behalf of a signed-in user. The signed-in user must be an administrator. The app can only read and write settings of connections that it is authorized to.
4082ad95-c812-4f02-be92-780c4c4f1830
Properties
Properties is shown from beta metadata because a stable v1.0 schema is not available for this resource mapping.
| Property | Type | Description |
|---|---|---|
configuration |
object |
|
description |
stringNullable |
|
groups |
externalGroup collection |
|
id |
string |
The unique identifier for an entity. Read-only. |
items |
externalItem collection |
|
name |
stringNullable |
|
operations |
connectionOperation collection |
|
schema |
object |
|
state |
objectRead-only |
JSON Representation
JSON representation is shown from beta metadata because a stable v1.0 schema is not available for this resource mapping.
{
"configuration": {
"sample": "value"
},
"description": "String",
"groups": [
{
"@type": "externalGroup",
"id": "00000000-0000-0000-0000-000000000000"
}
],
"id": "String",
"items": [
{
"@type": "externalItem",
"id": "00000000-0000-0000-0000-000000000000"
}
],
"name": "String",
"operations": [
{
"@type": "connectionOperation",
"id": "00000000-0000-0000-0000-000000000000"
}
],
"schema": {
"sample": "value"
},
"state": {
"sample": "value"
}
}
Relationships
Relationships is shown from beta metadata because a stable v1.0 schema is not available for this resource mapping.
| Relationship | Type | Description |
|---|---|---|
groups |
externalGroup collection |
External groups in the connection. |
items |
externalItem collection |
External items in the connection. |
schema |
schema |
Schema definition for the external connection. |
operations |
connectionOperation collection |
Related operations data exposed by this resource. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models.ExternalConnectors;
var requestBody = new ExternalConnection
{
Id = "contosohr",
Name = "Contoso HR",
Description = "Connection to index Contoso HR system",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.External.Connections.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const externalConnection = {
id: 'contosohr',
name: 'Contoso HR',
description: 'Connection to index Contoso HR system'
};
await client.api('/external/connections')
.post(externalConnection);
Import-Module Microsoft.Graph.Search
$params = @{
id = "contosohr"
name = "Contoso HR"
description = "Connection to index Contoso HR system"
}
New-MgExternalConnection -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.external_connectors.external_connection import ExternalConnection
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ExternalConnection(
id = "contosohr",
name = "Contoso HR",
description = "Connection to index Contoso HR system",
)
result = await graph_client.external.connections.post(request_body)
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Application permissions or delegated permissions and search for ExternalConnection.ReadWrite.OwnedBy
Grant Admin Consent
Application permissions always require admin consent.
Frequently asked questions
What is the ExternalConnection.ReadWrite.OwnedBy Microsoft Graph permission?
ExternalConnection.ReadWrite.OwnedBy is available as both an application permission and a delegated permission in the Microsoft Graph API, grouped under the ExternalConnection category. Allows the app to read and write external connections without a signed-in user. The app can only read and write external connections that it is authorized to, or it can create new external connections. It grants read and write access to resources. Application permissions always require admin consent. It is mapped to the Microsoft Graph externalConnection resource type. 18 documented Microsoft Graph REST methods require it. 18 Microsoft Graph PowerShell commands are documented for it.
Is ExternalConnection.ReadWrite.OwnedBy an application or a delegated permission?
ExternalConnection.ReadWrite.OwnedBy is available as both an application permission (app-only access, no signed-in user) and a delegated permission (access on behalf of a signed-in user).
Does ExternalConnection.ReadWrite.OwnedBy require admin consent?
Application permissions always require admin consent.
What is the permission ID (GUID) for ExternalConnection.ReadWrite.OwnedBy?
For ExternalConnection.ReadWrite.OwnedBy, the application (app role) ID is f431331c-49a6-499f-be1c-62af19c34a9d, and the delegated (OAuth2 scope) ID is 4082ad95-c812-4f02-be92-780c4c4f1830. These are the real Microsoft Graph identifiers and can be used directly in an app registration manifest.