Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к: Для разработчиков
Настройте проверку подлинности и авторизацию, прежде чем приложение SharePoint Embedded будет обращаться к API Microsoft Graph или SharePoint Embedded.
Сначала выполните регистрацию разрешений приложения , чтобы тип контейнера был зарегистрирован в клиенте-потребителе.
Общие сведения о модели доступа
В SharePoint Embedded используется два уровня разрешений.
Разрешения Microsoft Graph позволяют приложению вызывать конечные точки SharePoint Embedded.
Тип контейнера: разрешения приложения позволяют приложению получать доступ к контейнерам определенного типа.
Оба слоя обязательны.
Важно!
Согласие Microsoft Graph само по себе не предоставляет доступ к контейнерам. Приложению также должно быть предоставлено разрешение на тип контейнера.
Настройка приложения Microsoft Entra ID
Начните с регистрации приложения Microsoft Entra ID. SharePoint Embedded поддерживает все типы субъектов-служб Microsoft Entra.
Настройте его для своего типа приложения:
- Зарегистрируйте или определите приложение-владельце.
- Добавление URI перенаправления для клиентов разработки и рабочей среды.
- При необходимости добавляйте учетные данные для потоков, предназначенных только для приложений.
- Добавление разрешений Microsoft Graph для доступа SharePoint Embedded.
- Добавьте разрешение Microsoft Graph, необходимое для сценариев регистрации.
- При необходимости попросите администратора предоставить согласие.
Общие действия см. в разделе Регистрация приложения с помощью платформы удостоверений Майкрософт.
Запрос разрешений Microsoft Graph
Для операций SharePoint Embedded через Microsoft Graph требуется FileStorageContainer.Selected.
Используйте делегированное FileStorageContainer.Selected управление доступом от имени пользователя.
Используйте приложение FileStorageContainer.Selected для доступа только через приложение.
Для приложения FileStorageContainer.Selected требуется согласие администратора в клиенте-потребителе. Делегированное FileStorageContainer.Selected не требует согласия администратора.
Используйте FileStorageContainer.Manage.All возможности администрирования от имени пользователя-администратора во всех управляемых типах контейнеров в клиенте-потребителе. К этим возможностям относятся перечисление, удаление, восстановление, очистка и обновление контейнеров, а также управление их разрешениями.
Примечание.
Сочетание разрешений Microsoft Graph и разрешений типа контейнера для приложения определяет, что приложение может делать.
Запрос разрешения на регистрацию
При регистрации типа контейнера используется API регистрации типа контейнера Microsoft Graph в версии 1.0.
Для регистрации запросите FileStorageContainerTypeReg.Selected разрешение Microsoft Graph (делегированное или только приложение).
| Имя области | Тип | Использовать |
|---|---|---|
FileStorageContainerTypeReg.Selected |
Делегированные или прикладные | Включает регистрацию типа контейнера для клиента-потребителя. |
Для вызовов делегированной регистрации пользователь, выполнивший вход, должен иметь роль администратора SharePoint Embedded или глобального администратора.
Используйте это разрешение с регистрацией разрешений приложения.
По возможности отдавайте предпочтение делегированному доступу
По возможности используйте доступ от имени пользователя.
Делегированный доступ повышает безопасность, подотчетность, аудит и согласованность с участием пользователя в контейнере.
При использовании делегированного доступа действующие разрешения представляют собой пересечение разрешений приложения и пользовательского контейнера.
Пользователь должен быть участником контейнера.
Используйте конфиденциальное клиентское приложение, чтобы ваше приложение могло управлять действиями, выполняемыми от имени пользователя. Общедоступное клиентское приложение может предоставлять маркеры пользователей конечному пользователю, что может приводить к действиям, неподконтрольным вашему приложению. Дополнительные сведения см. в статьях Общедоступные клиенты и конфиденциальные клиентские приложения.
Настройка приобретения делегированных маркеров
Для делегированных звонков:
- Войдите в систему пользователя с помощью платформы удостоверений Майкрософт.
- Запрос делегирован.
FileStorageContainer.Selected - Подтвердите, что делегированное согласие предоставлено в соответствии с политиками согласия пользователей клиента-потребителя.
- Получение маркера доступа для Microsoft Graph.
- Вызов конечных точек Microsoft Graph SharePoint Embedded.
- Убедитесь, что пользователь является участником целевого контейнера.
Если пользователь не является участником контейнера, приложение не сможет получить доступ к этому контейнеру от имени пользователя.
Настройка получения маркеров только для приложений
Используйте доступ только для приложений для рабочих нагрузок служб, которые не запускаются от имени пользователя.
Для вызовов только приложения:
- Настройка учетных данных приложения, например сертификата.
- Запрос заявки
FileStorageContainer.Selected. - Попросите администратора клиента-потребителя предоставить согласие администратора.
- Получите маркер с помощью потока учетных данных клиента.
- Вызов конечных точек Microsoft Graph SharePoint Embedded.
- Ограничьте разрешения типа контейнера потребностями рабочей нагрузки.
Предостережение
Токен только для приложения может получать доступ ко всем контейнерам, включенным разрешениями приложения его типа. Руководствуйтесь принципом минимальных прав.
Вызов API Microsoft Graph
После получения маркера вызовите операции SharePoint Embedded через Microsoft Graph. Полезные ссылки:
- Тип ресурса контейнера файлового хранилища
- Создать fileStorageContainer
- Основные сведения об аутентификации и авторизации Microsoft Graph
Создание контейнеров для операций жизненного цикла и управление ими.
Обработка операций, не доступных через Graph
Некоторые операции имеют исключительные шаблоны доступа.
В этих операциях используются исключительные шаблоны доступа:
- Управление типами контейнеров в владельце через API типа контейнеров Microsoft Graph (
FileStorageContainerType.Manage.Allделегированное разрешение). - Регистрация типа контейнера в клиенте-потребителе с помощью API регистрации типа контейнера Microsoft Graph (
FileStorageContainerTypeReg.Selected). - Возможности агента SharePoint Embedded с помощью собственных требований к разрешениям.
-
Поиск: Поиск (Майкрософт) в SharePoint Для внедренного контента требуется делегированное
Files.Read.Allразрешение в дополнение кFileStorageContainer.Selected. -
Операции, требующие лицензии пользователя: контейнеры списка возвращаются
403 Forbiddenдля делегированного пользователя, у которого нет OneDrive (вызовы только в приложении не затрагиваются), и пользователям требуется лицензия Microsoft 365, чтобы отображаться в средстве выбора людей в Office @mentions . -
Административные действия в контейнерах: требуется,
FileStorageContainer.Manage.Allчтобы пользователь, вошедший в систему, был администратором SharePoint Embedded или глобальным администратором. Для обычного доступа приложений к контейнерам используйтеFileStorageContainer.Selectedс необходимыми разрешениями типа контейнера.
Важно!
Не предполагайте, что каждая операция использует один и тот же маркер или ресурс разрешений. Проверяйте шаблоны исключительного доступа перед реализацией потока.
Предоставление разрешений для приложения типа контейнера
Приложение-владелец предоставляет разрешения приложению типа контейнера через регистрацию типа контейнера в клиенте-потребителе. Эти разрешения определяют, что приложение может делать с контейнерами этого типа.
| Разрешение | Описание |
|---|---|
| Нет | Нет разрешений для контейнеров или содержимого этого типа. |
| Чтение содержимого | Прочтите содержимое контейнеров этого типа контейнера. |
| WriteContent | Записывать содержимое в контейнеры этого типа контейнера. Требуется ReadContent. |
| Создание | Создайте контейнеры этого типа. |
| Удалить | Удалить контейнеры этого типа. |
| Чтение | Чтение метаданных контейнеров этого типа контейнера. |
| Запись | Обновите метаданные контейнеров этого типа контейнера. |
| EnumeratePermissions | Перечисление участников контейнера и их ролей. |
| AddPermissions | Добавление участников в контейнер. |
| UpdatePermissions | Изменение ролей существующих участников. |
| DeletePermissions | Удалить других участников (но не себя) из контейнера. |
| DeleteOwnPermission | Удалите свое членство из контейнера. |
| ManagePermissions | Добавляйте, удаляйте (включая себя) и обновляйте участников в ролях контейнеров. |
| ManageContent | Управление содержимым контейнера (WriteContent плюс отмена извлечения в режиме только приложения). |
| Full | Все разрешения для контейнеров этого типа. |
Управление владельцами типов контейнеров
Любой пользователь Microsoft Entra, не являющийся внешним удостоверением, может быть владельцем типа контейнера. Управление владельцем через свойство навигации по разрешениям ресурса fileStorageContainerType в настоящее время доступно только в бета-версии Microsoft Graph. Каждая запись имеет owner роль и идентифицирует пользователя с помощью grantedToV2.
- Автоматическое назначение. Пользователь, создающий тип контейнера , автоматически назначается владельцем.
-
Добавление владельцев: используется
POST /containerTypes/{id}/permissionsдля добавления владельцев. У контейнера типа может быть не более трех владельцев, включая создателя, который автоматически назначается первым владельцем. -
Удаление владельцев: используется
DELETE /containerTypes/{id}/permissions/{id}для удаления владельца. -
Чтение владельцев: использование
GET /containerTypes/{id}?$expand=permissionsилиGET /containerTypes/{id}/permissionsизвлечение владельцев.
Администраторы SharePoint Embedded могут управлять всеми приложениями, созданными в клиенте-владельце и установленными в клиенте-потребителе. Назначьте наименее привилегированную роль; для этих задач рекомендуется использовать роль администратора SharePoint Embedded вместо глобального администратора.
Общие сведения о разрешениях контейнеров
Разрешения контейнера применяются только к делегированному доступу. Приложение, которое получает доступ к контейнерам без пользователя, вместо этого получает полный доступ, определяемый разрешениями приложения типа контейнера.
Пользователи получают членство в контейнере двумя способами:
- Прямое членство — пользователь добавляется непосредственно в контейнер с определенными разрешениями.
- Транзитивное членство — пользователь принадлежит к группе Microsoft 365 , которая является членом контейнера.
Пользователь должен быть участником контейнера с одной из этих ролей:
| Role | Сводка по Access |
|---|---|
| Средство чтения | Чтение свойств и содержимого контейнера. |
| Писатель | Доступ к средству чтения, а также создание, обновление и удаление содержимого, а также обновление применимых свойств. |
| Директор | Доступ редактора и управление участием в контейнере. |
| Владелец | Доступ менеджера и удаление контейнеров. |
Когда пользователь создает контейнер с помощью делегированных вызовов, этому пользователю автоматически назначается роль владельца.
Чтобы предоставить доступ к отдельным элементам без предоставления доступа к контейнеру, используйте приглашение или разрешение driveItemдля создания конечных точек. Предоставление общего доступа к элементу не предоставляет доступ ни к контейнеру, ни к другим элементам в нем.
Проверка подлинности
Проверка потока перед кодом функции:
- Подтвердите, что согласие администратора успешно завершено.
- Получите делегированный маркер.
- Получить маркер только для приложения.
- Вызовите простую конечную точку Graph, соответствующую типу маркера.
- Убедитесь, что регистрация включает приложение для звонков.
- Подтверждение членства пользователей для делегированных звонков.
- Подтвердите, что доступ только для приложения ограничен разрешениями типа контейнера.
Устранение ошибок авторизации
| Признак | Проверка |
|---|---|
| Вызов Graph возвращает значение "Несанкционированное" | Маркер отсутствует, срок его действия истек или он предназначен не для того ресурса. |
| Вызов графа возвращает "Запрещено" | Отсутствует разрешение Consent, Graph или тип контейнера. |
| Ошибка делегированного звонка для одного пользователя | Пользователь не является участником контейнера или не имеет необходимой роли. |
| Вызов только через приложение имеет слишком большой доступ | Разрешение типа контейнера шире, чем необходимо. |
| Сбой вызова регистрации | Используйте FileStorageContainerTypeReg.Selected; Для делегированных звонков пользователю необходима роль администратора SharePoint Embedded или глобального администратора. |
| Сбой поиска звонка | Просмотрите шаблоны исключительного доступа для поиска. |
Дальнейшие действия
Используйте настроенный поток для создания контейнеров и управления ими.