|
1 | 1 | --- |
2 | 2 | title: SharePoint Embedded Authentication and Authorization |
3 | 3 | description: This article describes the authentication and authorization model for SharePoint Embedded applications. |
4 | | -ms.date: 03/20/2026 |
| 4 | +ms.date: 04/02/2026 |
5 | 5 | ms.localizationpriority: high |
6 | 6 | --- |
7 | 7 |
|
@@ -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](/graph/api/resources/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