Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: Разработчик
Настройте проверку подлинности и авторизацию, прежде чем приложение SharePoint Embedded вызовет Microsoft Graph или API SharePoint Embedded.
Сначала завершите регистрацию разрешений приложения , чтобы тип контейнера был зарегистрирован в используемом клиенте.
Общие сведения о модели доступа
SharePoint Embedded использует два уровня разрешений.
Разрешения Microsoft Graph позволяют приложению вызывать конечные точки SharePoint Embedded.
Разрешения приложения типа контейнера позволяют приложению получать доступ к контейнерам определенного типа.
Оба слоя являются обязательными.
Важно!
Только согласие Microsoft Graph не предоставляет доступ к контейнерам. Приложению также должно быть предоставлено разрешение на тип контейнера.
Настройка приложения Microsoft Entra ID
Начните с регистрации приложения Microsoft Entra ID.
Настройте его для типа приложения:
- Зарегистрируйте или определите владеющее приложение.
- Добавьте 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. Полезные ссылки:
- Тип ресурса контейнера хранилища файлов
- Создание файлаStorageContainer
- Основы проверки подлинности и авторизации Microsoft Graph
Перейдите к статье Создание контейнеров и управление ими для операций жизненного цикла.
Обработка операций, не предоставляемых с помощью Graph
Некоторые операции имеют исключительные шаблоны доступа.
В этих операциях используются шаблоны исключительного доступа:
- Управление типами контейнеров в арендаторе-владельце с помощью API типа контейнера Microsoft Graph (
FileStorageContainerType.Manage.Allделегированное разрешение). - Регистрация типа контейнера в потребляемом клиенте с помощью API регистрации типов контейнеров Microsoft Graph (
FileStorageContainerTypeReg.Selected). - Агент SharePoint Embedded выполняет собственные требования к разрешениям.
-
Поиск. Для поиска (Майкрософт) в SharePoint Embedded требуется делегированное
Files.Read.Allразрешение в дополнение кFileStorageContainer.Selected. -
Операции, для которых требуется лицензия пользователя. Список контейнеров возвращается
403 Forbiddenдля делегированного пользователя, у которого нет OneDrive (вызовы только для приложений не затрагиваются), и пользователям требуется лицензия Microsoft 365 для отображения в элементе выбора пользователей Office @mentions . -
Административные действия с контейнерами:
FileStorageContainer.Manage.Allпользователь, выполнив вход, должен быть администратором SharePoint Embedded или глобальным администратором. Для обычного доступа приложений к контейнерам используйтеFileStorageContainer.Selectedс необходимыми разрешениями типа контейнера.
Важно!
Не предполагайте, что каждая операция использует один и тот же маркер или ресурс разрешений. Перед реализацией потока проверьте шаблоны исключительного доступа.
Предоставление разрешений приложению типа контейнера
Владеющее приложение предоставляет разрешения приложению типа контейнера путем регистрации типа контейнера в потребляемом клиенте. Эти разрешения определяют, что приложение может делать с контейнерами типа контейнера.
| Разрешение | Описание |
|---|---|
| Нет | Нет разрешений на контейнеры или содержимое этого типа. |
| ReadContent | Чтение содержимого контейнеров этого типа. |
| 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 | Сводка по доступу |
|---|---|
| Читатель | Чтение свойств и содержимого контейнера. |
| Писатель | Доступ для чтения, а также создание, обновление и удаление содержимого и обновление применимых свойств. |
| Директор | Доступ к записи и управление членством в контейнере. |
| Владелец | Диспетчер доступа и удаление контейнеров. |
Когда пользователь создает контейнер с помощью делегированных вызовов, ему автоматически назначается роль владельца.
Чтобы предоставить общий доступ к отдельным элементам без предоставления доступа к контейнеру, используйте приглашение driveItem или разрешение на создание конечных точек. Предоставление общего доступа к элементу не предоставляет доступ к контейнеру или любому другому элементу в нем.
Проверка подлинности
Проверьте поток перед кодом компонента:
- Убедитесь, что согласие администратора выполнено успешно.
- Получение делегированного маркера.
- Получение маркера только приложения.
- Вызовите простую конечную точку Graph, соответствующую типу маркера.
- Подтвердите, что регистрация включает в себя вызывающее приложение.
- Подтвердите членство пользователей для делегированных вызовов.
- Убедитесь, что доступ только для приложений ограничен разрешениями типа контейнера.
Устранение сбоев авторизации
| Признак | Проверка |
|---|---|
| Вызов Graph возвращает несанкционированный | Маркер отсутствует, истек срок действия или для неправильного ресурса. |
| Вызов Graph возвращает запрещено | Отсутствует согласие, разрешение Graph или разрешение типа контейнера. |
| Сбой делегированного вызова для одного пользователя | Пользователь не является членом контейнера или не имеет необходимой роли. |
| Вызов только для приложений имеет слишком большой доступ | Разрешение типа контейнера шире, чем необходимо. |
| Сбой вызова регистрации | Используйте FileStorageContainerTypeReg.Selected; для делегированных вызовов пользователю требуется роль администратора SharePoint Embedded или глобального администратора. |
| Сбой вызова поиска | Просмотрите шаблоны исключительного доступа для поиска. |
Дальнейшие действия
Используйте настроенный поток для создания контейнеров и управления ими.