Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к: Для разработчиков
В этой статье описывается планирование проверки подлинности и авторизации для приложения SharePoint Embedded.
Приложения SharePoint Embedded используют Microsoft Graph для доступа к контейнерам и содержимому.
Полный справочник по проверке подлинности см. в статье "Проверка подлинности и авторизация SharePoint Embedded".
Основные принципы
Проверка подлинности и авторизация SharePoint Embedded основаны на следующих принципах:
- Приложения взаимодействуют с SharePoint Embedded через Microsoft Graph.
- Приложениям требуется тип контейнера разрешения для доступа к контейнерам этого типа контейнера.
- Приложения могут получать доступ только к контейнерам, участником которых является пользователь, при использовании делегированного доступа от имени пользователя.
- Приложения могут получать доступ ко всем контейнерам, включенным их типом контейнера: разрешениями приложения при использовании доступа только к приложениям без пользователя.
- Для повышения безопасности и подотчетности приложения должны по возможности использовать делегированный доступ.
Предварительные условия
Планируйте:
- Регистрация приложения Microsoft Entra ID.
- Подписка Microsoft 365 в клиенте Microsoft Entra ID.
- Разрешения Microsoft Graph для операций SharePoint Embedded.
- Разрешения приложения типа контейнера, предоставляемые через регистрацию типа контейнера.
- Согласие администратора в клиенте-потребителе.
Уровни разрешений
SharePoint Embedded имеет несколько уровней.
| Уровень | Назначение |
|---|---|
| Разрешение Microsoft Graph | Разрешает приложению вызывать конечные точки SharePoint Embedded. |
| Разрешение приложения типа контейнера | Предоставляет приложению доступ к контейнерам определенного типа. |
| Разрешение для контейнера | Определяет, что пользователь может делать в конкретном контейнере для делегированного доступа. |
Важно!
Разрешения Microsoft Graph сами по себе не предоставляют доступ к контейнерам. Приложению также должно быть предоставлено разрешение на тип контейнера.
Делегированный доступ
Делегированный доступ означает, что приложение действует от имени пользователя.
Для операций SharePoint Embedded от имени пользователя требуется делегированное разрешение Microsoft Graph FileStorageContainer.Selected .
Это делегированное разрешение не требует согласия администратора клиента-потребителя.
У пользователя также должны быть разрешения на доступ к контейнеру.
Действующие разрешения приложения находятся на пересечении:
- Разрешения приложения, предоставленные для этого типа контейнера.
- Разрешения пользователя в контейнере.
По возможности используйте делегированный доступ.
Делегированный доступ повышает аудит, поскольку действия могут быть связаны с пользователем.
Конфиденциальное требование клиента для создания контейнера
Для создания контейнера требуется конфиденциальное клиентское приложение, которое содержит секрет или сертификат клиента и сохраняет его конфиденциальность. Создание вызовов, использующих маркер из общедоступного клиентского приложения, например одностраничного приложения, мобильного приложения или классического приложения, завершаются сбоем.
Запланируйте внутренний компонент, который получает маркер и вызывает Microsoft Graph, если интерфейсная часть приложения является общедоступным клиентом. Создание только приложения уже отвечает этому требованию, так как поток учетных данных клиента является конфиденциальным.
Дополнительные сведения см. в статьях Общедоступные клиенты и конфиденциальные клиентские приложения.
Доступ только через приложение
Доступ только для приложения означает, что приложение работает без пользователя.
Для операций SharePoint Embedded без пользователя требуется разрешение приложения Microsoft Graph FileStorageContainer.Selected .
Для этого разрешения требуется согласие администратора клиента-потребителя.
При доступе только для приложения приложение может получить доступ ко всем контейнерам, включенным разрешениями приложения его типа.
Используйте доступ только для приложений для фоновых операций, которые нельзя выполнить от имени пользователя.
Примените минимальные привилегии при предоставлении разрешений приложению типа контейнера.
Согласие администратора
Администратор клиента-потребителя должен дать согласие на запрос разрешений от приложения.
Для получения разрешения приложения FileStorageContainer.Selected требуется согласие администратора. Делегированное FileStorageContainer.Selected не требует согласия администратора.
Для регистрации типа контейнера также требуется согласие приложения-владельца на действия в клиенте-потребителе.
Сведения о регистрации типа контейнера см. в статье Регистрация разрешений приложения типа файлового хранилища.
Разрешения типа контейнера (Microsoft Graph)
Создание, администрирование и регистрация типов контейнеров теперь являются операциями Microsoft Graph. Запланируйте эти разрешения:
| Разрешение | Назначение | Tenant |
|---|---|---|
FileStorageContainerType.Manage.All |
Создавайте типы контейнеров и управляйте ими в клиенте-владельце. | Только владение |
FileStorageContainerTypeReg.Selected |
Зарегистрируйте тип контейнера для клиентов-потребителей. | Потребление |
FileStorageContainer.Selected |
Доступ к контейнерам этого типа на клиентах-потребителях. | Потребление |
FileStorageContainerType.Manage.All является делегированным разрешением, не требующим согласия администратора. Любой негостевой пользователь в владельце может дать согласие, использовать его для создания типа контейнера, после чего автоматически назначается владельцем этого типа контейнера. (До июня 2026 года для этого требовалась роль администратора SharePoint Embedded или глобального администратора.)
Важно!
FileStorageContainerType.Manage.All требуется только для владельца для создания типа контейнера. Удалите его из манифеста приложения перед распространением среди клиентов-потребителей, чтобы у клиентов не требовались чрезмерные разрешения. При потреблении клиента только FileStorageContainerTypeReg.Selected запрос и FileStorageContainer.Selected.
Тип контейнера Разрешения приложения
Разрешения приложения типа контейнера предоставляются приложением-владельцем посредством регистрации типа контейнера.
Эти разрешения определяют, что приложение может делать с контейнерами этого типа.
Типы контейнеров Разрешения для приложений включают:
NoneReadContentWriteContentCreateDeleteReadWriteEnumeratePermissionsAddPermissionsUpdatePermissionsDeletePermissionsDeleteOwnPermissionManagePermissionsManageContentFull
Предоставляйте приложению только те разрешения, которые необходимы его приложению.
Например, не предоставляйте Full фоновому гостевому приложению доступ, если ему нужен доступ только на чтение для резервного копирования или анализа.
Разрешения контейнера
К пользователям применяются разрешения контейнеров.
Они применяются только к доступу от имени пользователя.
Любой пользователь, получающий доступ к контейнеру, должен быть участником контейнера.
Членство в контейнере предоставляет пользователям разрешения для этого контейнера.
SharePoint Embedded поддерживает следующие роли контейнеров:
| Role | Сводка |
|---|---|
| Средство чтения | Чтение свойств и содержимого контейнера. |
| Писатель | Разрешения для читателей, а также создание, обновление и удаление содержимого, а также обновление применимых свойств контейнера. |
| Директор | Разрешения на запись и управление членством в контейнере. |
| Владелец | Разрешения руководителя и удаление контейнеров. |
Когда пользователь создает новый контейнер с помощью делегированных вызовов, этому пользователю автоматически назначается роль владельца.
Владельцы типа контейнера
Владельцы типов контейнеров отличаются от владельцев контейнеров. Они управляют типом контейнера в клиенте-владельце .
- Автоматическое назначение. Пользователь, создающий тип контейнера, автоматически назначается владельцем.
-
Добавить или удалить владельцев: используйте отношение типа
permissionsконтейнера (бета-версия), чтобы управлять тремя владельцами каждого типа контейнера:POST /storage/fileStorage/containerTypes/{id}/permissionsдобавляет владельца иDELETE /storage/fileStorage/containerTypes/{id}/permissions/{permissionId}удаляет определенное разрешение владельца. -
Возможности: в
FileStorageContainerType.Manage.Allделегированном режиме владельцы могут создавать, читать, обновлять и удалять принадлежащий им тип контейнера, управлять его владельцами и создавать контейнеры этого типа (только делегированные вызовы). - Ограничения. Внешние удостоверения (гостевые пользователи) не могут быть владельцами типа контейнера. Сведения о владельце существуют только в клиенте-владельце и не распространяются на арендаторов-потребителей при регистрации.
- Эффективный доступ: возможности владельца являются разрешениями пользователя; фактический доступ — это пересечение разрешений приложения Graph и роли владельца.
Последствия для регистрации типа контейнера
Для того чтобы приложение-владелец воздействовало на клиента-потребителя:
- В приложении-владельце должен быть установлен субъект-служба в клиенте-потребителе.
- Приложению-владельцу должно быть предоставлено согласие администратора на регистрацию типа контейнера.
- Только приложение-владелец этого типа контейнера может вызывать API регистрации в клиенте-потребителе.
API регистрации определяет разрешения для приложения-владельца и любых гостевых приложений.
Последний успешный вызов API регистрации определяет параметры, используемые в клиенте-потребителе.
Исключительные шаблоны доступа
Планируйте операции, которые не следуют стандартному шаблону авторизации Microsoft Graph.
Исключительные шаблоны доступа включают:
- Управление типами контейнеров для владельцев клиентов через Microsoft Graph.
- Регистрация типа контейнера для клиентов-потребителей через Microsoft Graph (
FileStorageContainerTypeReg.Selected). - Административные операции контейнера, для которых требуется
FileStorageContainer.Manage.Allпользователь, вошедший в систему администратора SharePoint Embedded или глобального администратора. - Сценарии Поиска (Майкрософт), требующие дополнительных разрешений в предварительной версии.
- Операции, для которых в настоящее время требуется пользовательская лицензия.
Ознакомьтесь с ними, прежде чем разрабатывать привилегированные или требующие поиска функции.
Рекомендации по безопасности
- Предпочитайте делегированный доступ для операций, управляемых пользователем.
- Используйте доступ только для приложений, только если это необходимо для операций службы.
- Предоставление минимальных привилегий на уровне типа контейнера.
- Предоставление минимальных привилегий на уровне членства в контейнере.
- Требуется согласие администратора в правильном клиенте.
- Рассматривайте регистрацию как часть подключения клиентов.
- Избегайте широкого доступа к гостевым приложениям, если это не требуется для сценария.
- Просмотрите последствия аудита и соответствия требованиям вместе с администраторами клиента.
Контрольный список планирования
- Зарегистрируйте приложение Microsoft Entra ID.
- Определите, какие операции используют делегированный доступ.
- Определите, какие операции используют доступ только к приложениям.
- Запрашивайте разрешения Microsoft Graph
FileStorageContainer.Selected. - Запросите Microsoft Graph
FileStorageContainerType.Manage.All(владеющий клиент) иFileStorageContainerTypeReg.Selected(клиенты-потребители) для создания и регистрации типов контейнеров. - Запланируйте согласие администратора в каждом клиенте-потребителе.
- Определение разрешений приложения типа контейнера.
- Определение ролей контейнеров пользователей.
- Определите гостевые приложения и их разрешения.
- Просмотрите шаблоны доступа с исключительными возможностями.
Дальнейшие действия
Обзор ограничений масштаба и производительности: общие сведения об ограничениях и шаблонах звонков.