Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Чтобы приложение SharePoint Embedded взаимодействовал с контейнерами в потребляемом клиенте, сначала необходимо зарегистрировать тип контейнера в потребляемом клиенте. Регистрация типа контейнера происходит, когда владеющее приложение вызывает API регистрации, чтобы указать, какие разрешения можно выполнить для своего типа контейнера. API регистрации также предоставляет доступ к другим гостевым приложениям для взаимодействия с контейнерами собственного приложения. Например, приложение SharePoint Embedded может предоставить разрешения другому приложению — гостевого приложения, чтобы гостевое приложение ранее решилось выполнять операции резервного копирования в своих контейнерах.
Так как API регистрации управляет разрешениями, которые приложение SharePoint Embedded может выполнять с контейнером в потребляемом клиенте, этот вызов должен быть одним из первых вызываемых API. Если это сделать, при вызове других API для контейнера и (или) содержимого в контейнерах возникают ошибки отказа в доступе.
Нет ограничений на количество вызовов API регистрации. Частота вызова API регистрации и его время зависит от приложения SharePoint Embedded. Однако последний успешный вызов API регистрации определяет параметры, используемые в используемом клиенте.
Требования к проверке подлинности и авторизации
Чтобы приложение, владеющее типом контейнера, действовало в потребляющем клиенте, необходимо выполнить некоторые предварительные требования:
- в потребляющий клиент должен быть установлен субъект-служба. и
- приложению-владельце должно быть предоставлено согласие администратора на регистрацию типа контейнера в используемом клиенте.
Примечание.
Только владеющее приложение типа контейнера может вызывать API регистрации в используемом клиенте.
Оба требования могут быть удовлетворены, если администратор клиента потребляющего клиента предоставит согласие администратора приложению типа контейнера.
API регистрации типа контейнера требует разрешения только для приложений Container.Selected для SharePoint (см. раздел Шаблоны исключительного доступа). Вам потребуется использовать поток предоставления учетных данных клиента и запросить маркер с сертификатом для использования API регистрации.
Примечание.
API регистрации не является microsoft API Graph, а API SharePoint. В будущем этот API будет перенесен в Microsoft Graph.
Чтобы запросить согласие администратора от администратора в используемом клиенте, вы можете направить его в конечную точку согласия администратора. Сведения о правильных конечных точках в национальных облаках см. в разделе платформа удостоверений Майкрософт конечных точек в национальных облаках:
https://login.microsoftonline.com/<ConsumingTenantID>/adminconsent?client_id=<OwningTenantClientID>
Вы можете настроить конечную точку согласия администратора в соответствии со своими потребностями, включая обработку ошибок и успешное предоставление разрешений. Дополнительные сведения см. в разделе URI согласия Администратор.
Разрешения типа контейнера
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"]
}
]
}