Настройка проверки подлинности и авторизации

Применяется к: Для разработчиков

Настройте проверку подлинности и авторизацию, прежде чем приложение 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.

Настройте его для своего типа приложения:

  1. Зарегистрируйте или определите приложение-владельце.
  2. Добавление URI перенаправления для клиентов разработки и рабочей среды.
  3. При необходимости добавляйте учетные данные для потоков, предназначенных только для приложений.
  4. Добавление разрешений Microsoft Graph для доступа SharePoint Embedded.
  5. Добавьте разрешение Microsoft Graph, необходимое для сценариев регистрации.
  6. При необходимости попросите администратора предоставить согласие.

Общие действия см. в разделе Регистрация приложения с помощью платформы удостоверений Майкрософт.

Запрос разрешений 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 или глобального администратора.

Используйте это разрешение с регистрацией разрешений приложения.

По возможности отдавайте предпочтение делегированному доступу

По возможности используйте доступ от имени пользователя.

Делегированный доступ повышает безопасность, подотчетность, аудит и согласованность с участием пользователя в контейнере.

При использовании делегированного доступа действующие разрешения представляют собой пересечение разрешений приложения и пользовательского контейнера.

Пользователь должен быть участником контейнера.

Используйте конфиденциальное клиентское приложение, чтобы ваше приложение могло управлять действиями, выполняемыми от имени пользователя. Общедоступное клиентское приложение может предоставлять маркеры пользователей конечному пользователю, что может приводить к действиям, неподконтрольным вашему приложению. Дополнительные сведения см. в статьях Общедоступные клиенты и конфиденциальные клиентские приложения.

Настройка приобретения делегированных маркеров

Для делегированных звонков:

  1. Войдите в систему пользователя с помощью платформы удостоверений Майкрософт.
  2. Запрос делегирован.FileStorageContainer.Selected
  3. Подтвердите, что делегированное согласие предоставлено в соответствии с политиками согласия пользователей клиента-потребителя.
  4. Получение маркера доступа для Microsoft Graph.
  5. Вызов конечных точек Microsoft Graph SharePoint Embedded.
  6. Убедитесь, что пользователь является участником целевого контейнера.

Если пользователь не является участником контейнера, приложение не сможет получить доступ к этому контейнеру от имени пользователя.

Настройка получения маркеров только для приложений

Используйте доступ только для приложений для рабочих нагрузок служб, которые не запускаются от имени пользователя.

Для вызовов только приложения:

  1. Настройка учетных данных приложения, например сертификата.
  2. Запрос заявки FileStorageContainer.Selected.
  3. Попросите администратора клиента-потребителя предоставить согласие администратора.
  4. Получите маркер с помощью потока учетных данных клиента.
  5. Вызов конечных точек Microsoft Graph SharePoint Embedded.
  6. Ограничьте разрешения типа контейнера потребностями рабочей нагрузки.

Предостережение

Токен только для приложения может получать доступ ко всем контейнерам, включенным разрешениями приложения его типа. Руководствуйтесь принципом минимальных прав.

Вызов API Microsoft Graph

После получения маркера вызовите операции SharePoint Embedded через 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.

Администраторы SharePoint Embedded могут управлять всеми приложениями, созданными в клиенте-владельце и установленными в клиенте-потребителе. Назначьте наименее привилегированную роль; для этих задач рекомендуется использовать роль администратора SharePoint Embedded вместо глобального администратора.

Общие сведения о разрешениях контейнеров

Разрешения контейнера применяются только к делегированному доступу. Приложение, которое получает доступ к контейнерам без пользователя, вместо этого получает полный доступ, определяемый разрешениями приложения типа контейнера.

Пользователи получают членство в контейнере двумя способами:

  • Прямое членство — пользователь добавляется непосредственно в контейнер с определенными разрешениями.
  • Транзитивное членство — пользователь принадлежит к группе Microsoft 365 , которая является членом контейнера.

Пользователь должен быть участником контейнера с одной из этих ролей:

Role Сводка по Access
Средство чтения Чтение свойств и содержимого контейнера.
Писатель Доступ к средству чтения, а также создание, обновление и удаление содержимого, а также обновление применимых свойств.
Директор Доступ редактора и управление участием в контейнере.
Владелец Доступ менеджера и удаление контейнеров.

Когда пользователь создает контейнер с помощью делегированных вызовов, этому пользователю автоматически назначается роль владельца.

Чтобы предоставить доступ к отдельным элементам без предоставления доступа к контейнеру, используйте приглашение или разрешение driveItemдля создания конечных точек. Предоставление общего доступа к элементу не предоставляет доступ ни к контейнеру, ни к другим элементам в нем.

Проверка подлинности

Проверка потока перед кодом функции:

  1. Подтвердите, что согласие администратора успешно завершено.
  2. Получите делегированный маркер.
  3. Получить маркер только для приложения.
  4. Вызовите простую конечную точку Graph, соответствующую типу маркера.
  5. Убедитесь, что регистрация включает приложение для звонков.
  6. Подтверждение членства пользователей для делегированных звонков.
  7. Подтвердите, что доступ только для приложения ограничен разрешениями типа контейнера.

Устранение ошибок авторизации

Признак Проверка
Вызов Graph возвращает значение "Несанкционированное" Маркер отсутствует, срок его действия истек или он предназначен не для того ресурса.
Вызов графа возвращает "Запрещено" Отсутствует разрешение Consent, Graph или тип контейнера.
Ошибка делегированного звонка для одного пользователя Пользователь не является участником контейнера или не имеет необходимой роли.
Вызов только через приложение имеет слишком большой доступ Разрешение типа контейнера шире, чем необходимо.
Сбой вызова регистрации Используйте FileStorageContainerTypeReg.Selected; Для делегированных звонков пользователю необходима роль администратора SharePoint Embedded или глобального администратора.
Сбой поиска звонка Просмотрите шаблоны исключительного доступа для поиска.

Дальнейшие действия

Используйте настроенный поток для создания контейнеров и управления ими.