You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: Document container type owner capabilities in SPE auth page
- Add container type owner capabilities subsection under owning tenant management
- Document permissions navigation property (roles: owner, grantedToV2)
- Document owner CRUD, permissions management, and container creation capabilities
- Add cross-tenant caveat: owners are NOT propagated to consuming tenants
- Add intersection model callout (app permissions x user permissions)
- Add auto-assignment of creator as owner and guest user exclusion
Copy file name to clipboardExpand all lines: docs/embedded/development/auth.md
+27Lines changed: 27 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -132,6 +132,30 @@ Specific items in a container can be shared with users via the [driveItem invite
132
132
133
133
[SharePoint Embedded Administrators](/entra/identity/role-based-access-control/permissions-reference#sharepoint-embedded-administrator) can manage all SharePoint Embedded applications created in the **owning** tenant. Additionally, any Microsoft Entra user that isn't an external identity can be assigned as an owner of a [container type](/graph/api/resources/filestoragecontainertype). Container type owners can manage that specific container type. To learn more about managing applications created in the owning tenant, see [SharePoint Embedded developer administrator](../administration/developer-admin/dev-admin.md).
134
134
135
+
##### Container type owner capabilities
136
+
137
+
Container type owners are managed through the [permissions](/graph/api/filestoragecontainertype-post-permissions) navigation property on the `fileStorageContainerType` resource. Each permission entry has a role of `owner` and identifies the user via `grantedToV2`. Owners can be managed in the following ways:
138
+
139
+
-**Automatic assignment**: The user who [creates a container type](/graph/api/filestorage-post-containertypes) is automatically assigned as an owner.
140
+
-**Add owners**: Use [POST /containerTypes/{id}/permissions](/graph/api/filestoragecontainertype-post-permissions) to add up to 3 owners per container type.
141
+
-**Remove owners**: Use [DELETE /containerTypes/{id}/permissions/{id}](/graph/api/filestoragecontainertype-delete-permissions) to remove an owner.
142
+
-**Read owners**: Use [GET /containerTypes/{id}?$expand=permissions](/graph/api/filestoragecontainertype-get) or [GET /containerTypes/{id}/permissions](/graph/api/filestoragecontainertype-list-permissions) to retrieve the container type owners.
143
+
144
+
Container type owners can perform the following operations on the **owning tenant** when using an application with `FileStorageContainerType.Manage.All` in delegated mode:
145
+
146
+
-**Create, read, update, and delete** the container type they own. Non-admin owners can only manage container types where they appear in the permissions collection and the calling app matches the owning application.
147
+
-**Add and remove** other owners on the container type they own (via the permissions endpoint)
148
+
-**Create containers** of the container type they own, as long as the call is delegated (not app-only)
149
+
150
+
> [!NOTE]
151
+
> The user who creates a container type is automatically assigned as an owner. External identities (guest users) cannot be assigned as container type owners and cannot perform owner operations.
152
+
153
+
> [!IMPORTANT]
154
+
> Container type owners exist only in the owning tenant. When a container type is registered in a consuming tenant, the owner information is **not** propagated to that tenant. For example, if Contoso creates a container type with owners and registers it in Fabrikam, those Contoso users do not exist in Fabrikam's tenant and have no owner capabilities there.
155
+
156
+
> [!IMPORTANT]
157
+
> Container type owner capabilities are user permissions. The effective access is the intersection of the application permissions (Microsoft Graph permissions) and the user permissions (owner role). The application must have sufficient Graph permissions for the intersection to grant the desired access.
158
+
135
159
### Exceptional access patterns
136
160
137
161
Currently, there are two types of operations with exceptional access patterns:
@@ -183,4 +207,7 @@ Here are some actions you can take next:
183
207
- Optionally add: `FileStorageContainer.Selected` (type: `Role`, ID: `40dc41bc-0f7e-42ff-89bd-d9516947e474`) to access the container on _consuming_ tenants without a user
184
208
1.[Grant admin consent](/entra/identity-platform/v2-admin-consent) to your application on a _consuming_ tenant (which can be the same as the owning tenant).
185
209
1.[Register the container type](../getting-started/register-api-documentation.md) on the _consuming_ tenant.
210
+
1. Remove `FileStorageContainerTypeReg.Selected` from your application's manifest after registration is complete.
211
+
> [!NOTE]
212
+
> After registering the container type, you should remove the `FileStorageContainerTypeReg.Selected` permission from your application's manifest. This permission is only needed during registration setup. Keeping it after registration unnecessarily increases your application's permission surface.
186
213
1.[Create a container](/graph/api/filestoragecontainer-post) on the _consuming_ tenant
0 commit comments