Регистрация разрешений приложения типа контейнера хранилища файлов
Чтобы приложение SharePoint Embedded взаимодействовал с контейнерами в потребляемом клиенте, сначала необходимо зарегистрировать тип контейнера в потребляемом клиенте. Регистрация типа контейнера происходит, когда владеющее приложение вызывает API регистрации, чтобы указать, какие разрешения можно выполнить для своего типа контейнера. API регистрации также предоставляет доступ к другим гостевым приложениям для взаимодействия с контейнерами собственного приложения. Например, приложение SharePoint Embedded может предоставить разрешения другому приложению — гостевого приложения, чтобы гостевое приложение ранее решилось выполнять операции резервного копирования в своих контейнерах.
Так как API регистрации управляет разрешениями, которые приложение SharePoint Embedded может выполнять с контейнером в потребляемом клиенте, этот вызов должен быть одним из первых вызываемых API. Если это сделать, при вызове других API для контейнера и (или) содержимого в контейнерах возникают ошибки отказа в доступе.
Нет ограничений на количество вызовов API регистрации. Частота вызова API регистрации и его время зависит от приложения SharePoint Embedded. Однако последний успешный вызов API регистрации определяет параметры, используемые в используемом клиенте.
Примечание.
Только владеющее приложение типа контейнера может вызывать API регистрации в используемом клиенте.
API регистрации НЕ является API Graph и может вызываться только с помощью AppOnly и маркера доступа на основе сертификата. Дополнительные сведения о проверке подлинности.
Разрешения типа контейнера
API регистрации определяет, какие разрешения может выполнять приложение SharePoint Embedded для контейнеров и содержимого в контейнерах для указанного типа контейнера.
Разрешение | Описание |
---|---|
Нет | Не имеет разрешений на контейнеры или содержимое этого типа. |
ReadContent | Может считывать содержимое контейнеров этого типа. |
WriteContent | Может записывать содержимое в контейнеры для этого типа контейнеров. Это разрешение не может быть предоставлено без разрешения ReadContent. |
Создание | Может создавать контейнеры этого типа. |
Удалить | Может удалять контейнеры этого типа. |
Чтение | Может считывать метаданные контейнеров этого типа. |
Запись | Может обновлять метаданные контейнеров этого типа. |
EnumeratePermissions | Может перечислять члены контейнера и их роли для контейнеров этого типа. |
AddPermissions | Можно добавлять члены в контейнер для контейнеров этого типа. |
UpdatePermissions | Может обновлять (изменять роли) существующего членства в контейнере для контейнеров этого типа. |
DeletePermissions | Может удалять другие члены (но не самостоятельно) из контейнера для контейнеров этого типа. |
DeleteOwnPermissions | Может удалить собственное членство в контейнере для контейнеров этого типа. |
ManagePermissions | Может добавлять, удалять (включая самостоятельно) или обновлять члены в ролях контейнеров для контейнеров этого типа. |
Full | Имеет все разрешения для контейнеров этого типа. |
HTTP-запрос
PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Примечание.
Это НЕ API Graph
{RootSiteURL}
— это URL-адрес используемого клиента в SharePoint. Например, https://contoso.sharepoint.com.
Текст запроса
В тексте запроса укажите json-представление разрешений типа контейнера для приложений SharePoint Embedded.
Отклик
В случае успешного выполнения этот метод возвращает код отклика 200 OK
и разрешения типа контейнера, настроенные для приложений SharePoint Embedded в тексте ответа.
Код HTTP | Описание |
---|---|
400 | Неправильный запрос. |
401 | В запросе отсутствуют действительные учетные данные проверки подлинности. |
403 | Предоставленные учетные данные проверки подлинности являются допустимыми, но недостаточными для выполнения запрошенной операции. Примеры: вызывающее приложение не является владельцем типа контейнера. |
404 | Тип контейнера не существует. |
Примеры
Регистрация типа контейнера в потребляемом клиенте
Зарегистрируйте тип контейнера в потребляющем клиенте и предоставьте полные разрешения приложению-владельцем (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) для вызовов Delegated и AppOnly.
Запрос
PUT {RootSiteUrl}/_api/v2.1/storageContainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
}
]
}
Отклик
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
}
]
}
Регистрация типа контейнера в используемом клиенте с разрешениями для гостевого приложения
Зарегистрируйте тип контейнера в потребляющем клиенте и предоставьте полные разрешения приложению-владельцем (AppId 71392b2f-1765-406e-86af-5907d9bdb2ab) для вызовов Delegated и AppOnly. Кроме того, предоставьте гостевой приложению (AppId 89ea5c94-7736-4e25-95ad-3fa95f62b6) разрешения на чтение и запись только для делегированных вызовов.
Запрос
PUT /storagecontainerTypes/{containerTypeId}/applicationPermissions
Content-Type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["full"]
},
{
"appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
"delegated": [read", "write"],
"appOnly": ["none"]
}
]
}
Отклик
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [
{
"appId": "71392b2f-1765-406e-86af-5907d9bdb2ab",
"delegated": ["full"],
"appOnly": ["read"]
},
{
"appId": "89ea5c94-7736-4e25-95ad-3fa95f62b6",
"delegated": ["read", "write"],
"appOnly": ["none"]
}
]
}