Поделиться через


Регистрация разрешений приложения типа контейнера хранилища файлов

Чтобы приложение 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"]
    }
  ]
}