Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы использовать SharePoint Embedded, приложение должно использовать Microsoft Graph. Дополнительные сведения о проверке подлинности и авторизации Microsoft Graph. Узнайте больше об архитектуре SharePoint Embedded.
Обзор
Ниже приведены некоторые основные принципы проверки подлинности и авторизации SharePoint Embedded.
- Приложения взаимодействуют с SharePoint Embedded через Microsoft Graph.
- Приложениям типа контейнера требуются разрешения приложения типа контейнера для доступа к контейнерам этого типа.
- Приложения могут получать доступ только к контейнерам, членом которым является пользователь, при использовании доступа от имени пользователя.
- Приложения могут получать доступ ко всем контейнерам, включенным разрешениями приложения типа контейнера при использовании доступа без пользователя.
- Приложения используют доступ от имени пользователей, когда это возможно для повышения безопасности и подотчетности.
Предварительные условия
- Регистрация приложения Microsoft Entra ID. См. раздел Регистрация приложения.
- У вашего клиента Microsoft Entra ID есть подписка На Microsoft 365
Авторизация
Операции SharePoint Embedded предоставляются через Microsoft Graph. SharePoint Embedded поддерживает доступ от имени пользователя , а также доступ без пользователя.
Важно!
Разрешения Microsoft Graph, предоставленные приложению, позволяют ему вызывать конечные точки SharePoint Embedded. Однако приложению необходимо предоставить разрешение на использование типа контейнера , прежде чем оно получит доступ к контейнерам этого типа.
Разрешения приложений
Для работы с SharePoint Embedded приложениям SharePoint Embedded необходимо запросить следующие разрешения Microsoft Graph в манифесте приложения:
- FileStorageContainerType.Manage.All , чтобы разрешить приложению создавать типы контейнеров и управлять ими в арендаторе-владельце. Это разрешение требуется только для арендатора,в котором создается тип контейнера.
- FileStorageContainerTypeReg.Selected , чтобы разрешить приложению регистрировать тип контейнера для потребляющих клиентов.
- FileStorageContainer.Selected , чтобы разрешить приложению доступ к контейнерам заданного типа при использовании клиентов.
Доступ от имени пользователя
Для операций SharePoint Embedded от имени пользователя требуется, чтобы приложения получали согласие для Microsoft Graph FileStorageContainer.Selected делегированного разрешения.
Помимо того, что приложение получает согласие на FileStorageContainer.Selected on aпотребляющий клиент, пользователь, от имени которого он действует, должен иметь разрешения пользователя. Действующие разрешения, имеющиеся у приложения, являются пересечением разрешений приложения и разрешений пользователя при действии от имени пользователя.
Важно!
Рекомендуется использовать SharePoint Embedded от имени пользователя. Этот тип доступа повышает безопасность приложения. Это также повышает возможность аудита действий, выполняемых приложением.
Доступ без пользователя
Для операций SharePoint Embedded без пользователя требуется, чтобы приложения получали согласие на разрешение microsoft Graph FileStorageContainer.Selected . Для этого разрешения требуется согласие администратора для используемого клиента.
Примечание.
Администратор потребляющего клиента должен согласиться на запрос вашего приложения на разрешения. Дополнительные сведения см. в статье Предоставление согласия администратора.
Разрешения приложения типа контейнера
Приложениям SharePoint Embedded необходимо предоставить разрешения приложения типа контейнера владельцем, прежде чем они смогут получить доступ к контейнерам заданного типа контейнера. Разрешения приложения типа контейнера предоставляются приложениям через регистрацию типа контейнера в используемом клиенте.
| Разрешение | Описание |
|---|---|
| Нет | Не имеет разрешений на контейнеры или содержимое этого типа. |
| ReadContent | Может считывать содержимое контейнеров этого типа. |
| WriteContent | Может записывать содержимое в контейнеры для этого типа контейнеров. Это невозможно предоставить без разрешения ReadContent. |
| Создание | Может создавать контейнеры этого типа. |
| Delete | Может удалять контейнеры этого типа. |
| Read | Может считывать метаданные контейнеров этого типа. |
| Write | Может обновлять метаданные контейнеров этого типа. |
| EnumeratePermissions | Может перечислять члены контейнера и их роли для контейнеров этого типа. |
| AddPermissions | Можно добавлять члены в контейнер для контейнеров этого типа. |
| UpdatePermissions | Может обновлять (изменять роли) существующего членства в контейнере для контейнеров этого типа. |
| DeletePermissions | Может удалять другие члены (но не самостоятельно) из контейнера для контейнеров этого типа. |
| DeleteOwnPermission | Может удалить собственное членство в контейнере для контейнеров этого типа. |
| ManagePermissions | Может добавлять, удалять (включая самостоятельно) или обновлять члены в ролях контейнеров для контейнеров этого типа. |
| ManageContent | Может управлять содержимым контейнера (WriteContent плюс отмена разрешения на извлечение в режиме только для приложений). |
| Full | Имеет все разрешения для контейнеров этого типа. |
Примечание.
Сочетание разрешений Microsoft Graph и разрешений приложения типа контейнера включает авторизацию клиента для приложений.
Разрешения пользователей
Пользователям предоставляются различные уровни доступа к SharePoint Embedded в зависимости от сценария:
- Доступ к содержимому в контейнерах
- Управление приложениями SharePoint Embedded, установленными в используемом клиенте
- Управление приложениями SharePoint Embedded, созданными в арендаторе-владельце
Доступ к содержимому в контейнерах
Пользователи могут получить доступ к содержимому в контейнерах двумя способами:
Разрешения контейнера
Пользователям можно назначать разрешения контейнера двумя способами:
- Прямое членство. Пользователь напрямую добавляется в качестве члена контейнера с определенными разрешениями.
- Транзитивное членство. Пользователь является членом группы Microsoft 365 , которая сама является членом контейнера с определенными разрешениями.
Членство в контейнере предоставляет пользователям разрешения контейнера. Эти разрешения определяют уровень доступа пользователей к заданному контейнеру. Разрешения контейнера применяются только к доступу от имени пользователя, но не к доступу без пользователя. Приложение SharePoint Embedded, обращающееся к контейнерам без пользователя, получает полный доступ, определенный в разрешениях приложения типа контейнера .
Важно!
Вызывающий пользователь, создающий новый контейнер с помощью делегированных вызовов, автоматически назначается роль владельца.
| Разрешение | Описание |
|---|---|
| Читатель | Эта роль позволяет пользователю считывать свойства и содержимое контейнера. |
| Писатель | Эта роль имеет все разрешения читателя, а также разрешение на создание, обновление и удаление содержимого в контейнере, а также на обновление применимых свойств контейнера. |
| Сотрудник | Эта роль имеет все разрешения, которые имеет модуль записи, а также разрешение на управление членством в контейнере. |
| Owner | Эта роль имеет все разрешения, которые имеет диспетчер, а также разрешение на удаление контейнеров и восстановление удаленных контейнеров. |
Доступ к определенным элементам в контейнере
Определенные элементы в контейнере могут предоставляться пользователям с помощью приглашения driveItem или разрешения на создание конечных точек. Общий доступ предоставляет пользователям доступ к определенным элементам, но не предоставляет им доступ к самому контейнеру или любому другому элементу в контейнере. Сведения о поддерживаемых уровнях доступа см. в разделе Роли разрешений.
Примечание.
Дополнительные сведения об общем доступе см. в статье Общий доступ и разрешения в SharePoint Embedded.
Управление приложениями SharePoint Embedded, установленными в используемом клиенте
Администраторы SharePoint Embedded могут управлять всеми приложениями SharePoint Embedded, установленными в используемом клиенте . Дополнительные сведения об управлении установленными приложениями в потребляемом клиенте см. в статье Управление приложениями SharePoint Embedded, установленными в используемом клиенте.
Примечание.
Глобальные администраторы имеют все разрешения, доступные администраторам SharePoint Embedded и т. д., поэтому они также могут управлять приложениями SharePoint Embedded, установленными в используемом клиенте. Однако следует назначить наименее привилегированную роль, необходимую для выполнения административных задач, поэтому для управления приложениями SharePoint Embedded рекомендуется использовать роль администратора SharePoint Embedded.
Управление приложениями SharePoint Embedded, созданными в арендаторе-владельце
Администраторы SharePoint Embedded могут управлять всеми приложениями SharePoint Embedded, созданными в арендаторе-владельце . Кроме того, любой пользователь Microsoft Entra, который не является внешним удостоверением, может быть назначен владельцем типа контейнера. Владельцы типов контейнеров могут управлять этим типом контейнера. Дополнительные сведения об управлении приложениями, созданными в клиенте-владельце, см. в статье Администратор разработчика SharePoint Embedded.
Возможности владельца типа контейнера
Владельцы типов контейнеров управляются с помощью свойства навигации permissions в ресурсе fileStorageContainerType . Каждая запись разрешения имеет роль owner и идентифицирует пользователя с помощью grantedToV2. Владельцами можно управлять следующими способами:
- Автоматическое назначение. Пользователь, создающий тип контейнера , автоматически назначается владельцем.
-
Добавление владельцев. Используйте для
POST /containerTypes/{id}/permissionsдобавления до трех владельцев на тип контейнера. -
Удалить владельцев. Используйте
DELETE /containerTypes/{id}/permissions/{id}для удаления владельца. -
Чтение владельцев. Используйте
GET /containerTypes/{id}?$expand=permissionsилиGET /containerTypes/{id}/permissionsдля получения владельцев типов контейнеров.
Владельцы типов контейнеров могут выполнять следующие операции с владельцем клиента при использовании приложения с FileStorageContainerType.Manage.All в делегированном режиме:
- Создание, чтение, обновление и удаление типа контейнера, который у них есть. Владельцы, не являющиеся администраторами, могут управлять типами контейнеров только в том случае, если они отображаются в коллекции разрешений, а вызывающее приложение соответствует приложению-владельцу.
- Добавление и удаление других владельцев в типе контейнера, который у них есть (через конечную точку разрешений)
- Создание контейнеров типа контейнера, владеющего им, при условии, что вызов делегирован (не только для приложения)
Примечание.
Пользователь, создающий тип контейнера, автоматически назначается владельцем. Внешние удостоверения (гостевые пользователи) не могут быть назначены владельцами типов контейнеров и не могут выполнять операции владельца.
Важно!
Владельцы типов контейнеров существуют только в арендаторе-владельце. Если тип контейнера зарегистрирован в потребляющий клиент, сведения о владельце не распространяются на этот клиент. Например, если Contoso создает тип контейнера с владельцами и регистрирует его в Fabrikam, эти пользователи Contoso не существуют в клиенте Fabrikam и не имеют там возможностей владельца.
Важно!
Возможности владельца типа контейнера — это разрешения пользователя. Действующий доступ — это пересечение разрешений приложения (разрешения Microsoft Graph) и разрешений пользователя (роль владельца). Приложение должно иметь достаточные разрешения Graph для пересечения, чтобы предоставить нужный доступ.
Исключительные шаблоны доступа
В настоящее время существует два типа операций с исключительными шаблонами доступа:
- Операции с поиском содержимого SharePoint Embedded
- Операции, для которых требуется лицензия пользователя
Важно!
Рассмотрите последствия этих исключительных шаблонов доступа к тому, как ваше приложение и другие приложения могут получить доступ к содержимому SharePoint Embedded в вашем типе контейнера.
Операции с поиском содержимого SharePoint Embedded
Этот раздел относится только к сценариям поиска в содержимом поиска, но не к сценариям перечисления.
Чтобы использовать поиск (Майкрософт) в sharePoint Embedded, необходимо запросить делегированный Files. Разрешение Read.All Microsoft Graph поверх FileStorageContainer.Selected, обычно используемое для доступа к SharePoint Embedded. На этапе предварительной версии этой функции Files. Разрешение приложения Read.All предоставляет приложениям доступ к возможностям поиска во всем содержимом SharePoint Embedded.
Примечание.
Поддержка поиска (Майкрософт) для содержимого SharePoint Embedded доступна в предварительной версии и может быть изменена. Требования к доступу к содержимому Поиска (Майкрософт) в SharePoint Embedded в будущем будут соответствовать модели авторизации SharePoint Embedded. Следите за новостями.
Операции, для которых требуется лицензия пользователя
SharePoint Embedded предназначен для работы без назначения конечным пользователям каких-либо лицензий на продукты Microsoft 365. Однако существуют определенные операции, которые еще не соответствуют этому принципу.
Вывод списка контейнеров
Операция перечисления контейнеров возвращает код ответа 403 Forbidden , если вызывается от имени пользователя, у которого нет OneDrive. В ближайшее время планируется удалить эту зависимость. Эта зависимость не применяется к операции перечисления контейнеров при вызове без контекста пользователя (режим только для приложений).
Упоминание пользователей в документах Office
Общий интерфейс Office включает просмотр документов и добавление комментариев к этим документам. Чтобы пользователи отображались в элементе @mentions выбора людей, им должна быть назначена лицензия Microsoft 365.
Что дальше
Ниже приведены некоторые действия, которые можно выполнить следующим образом:
Настройте манифест приложения SharePoint Embedded (можно использовать Microsoft Entra PowerShell или интерфейс командной строки Azure) для запроса необходимых разрешений в вашем собственном клиенте:
- Добавьте разрешение Microsoft Graph FileStorageContainerType.Manage.All , чтобы создать типы контейнеров в арендаторе-владельце :
-
resourceAppId:
00000003-0000-0000-c000-000000000000 -
type:
Role -
Идентификатор:
8e6ec84c-5fcd-4cc7-ac8a-2296efc0ed9b
-
resourceAppId:
- Добавьте разрешение Microsoft Graph FileStorageContainerType.Manage.All , чтобы создать типы контейнеров в арендаторе-владельце :
Предоставление согласия администратора приложению в вашем собственном клиенте
Создайте новый тип контейнера в арендаторе-владельце .
Перенастройте манифест приложения SharePoint Embedded, чтобы запросить только необходимые разрешения на использование клиентов:
Удалите разрешение Microsoft Graph FileStorageContainerType.Manage.All**, так как это необходимо только для создания типа контейнера в арендаторе-владельце .
resourceAppId:
00000003-0000-0000-c000-000000000000type:
RoleИдентификатор:
8e6ec84c-5fcd-4cc7-ac8a-2296efc0ed9bПримечание.
После создания типа контейнера в арендаторе-владельце следует удалить разрешение FileStorageContainerType.Manage.All из манифеста приложения. Для создания типа контейнера приложение не нуждается в этом при использовании клиентов, только в арендаторе-владельце . Сбой удаления этого разрешения из манифеста приложения приведет к тому, что ваши клиенты будут обеспокоены чрезмерными разрешениями, запрошенными приложением.
Добавьте разрешение Microsoft Graph FileStorageContainerTypeReg.Selected , чтобы зарегистрировать тип контейнера для потребления клиентов:
-
resourceAppId:
00000003-0000-0000-c000-000000000000 -
type:
Role -
Идентификатор:
2dcc6599-bd30-442b-8f11-90f88ad441dc
-
resourceAppId:
Добавьте разрешение Microsoft Graph FileStorageContainer.Selected для доступа к контейнерам в потребляющих клиентах от имени пользователей:
-
resourceAppId:
00000003-0000-0000-c000-000000000000 -
type:
Scope -
Идентификатор:
085ca537-6565-41c2-aca7-db852babc212
-
resourceAppId:
При необходимости добавьте разрешение Microsoft Graph FileStorageContainer.Selected для доступа к контейнеру при использовании клиентов без пользователя:
-
resourceAppId:
00000003-0000-0000-c000-000000000000 -
type:
Role -
Идентификатор:
40dc41bc-0f7e-42ff-89bd-d9516947e474
-
resourceAppId:
Предоставьте приложению согласие администратора в используемом клиенте (который может совпадать с клиентом-владельцем).
Зарегистрируйте тип контейнера в используемом клиенте .
Удалите FileStorageContainerTypeReg.Selected из манифеста приложения после завершения регистрации.
Примечание.
После регистрации типа контейнера необходимо удалить разрешение FileStorageContainerTypeReg.Selected из манифеста приложения. Это разрешение требуется только во время настройки регистрации. Сохранение после регистрации неоправданно увеличивает область разрешений приложения.
Создание контейнера в потребляемом клиенте