Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пространство имен: microsoft.graph
Важно!
API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Upsert (создание или обновление) до 10 объектов разрешений в файлеStorageContainer в одном запросе . Разностное исправление позволяет вызывающей стороне выполнять несколько операций (создание, обновление) для нескольких разрешений с одним запросом.
Важно!
Разрешения, добавленные к fileStorageContainer , применяются ко всем его объектам driveItem , независимо от уникальных или ограничивающих разрешений, применяемых к этим элементам.
Этот API доступен в следующих национальных облачных развертываниях.
| Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
| Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
|---|---|---|
| Делегированные (рабочая или учебная учетная запись) | FileStorageContainer.Selected | FileStorageContainer.Manage.All |
| Делегированные (личная учетная запись Майкрософт) | FileStorageContainer.Selected | Недоступно. |
| Приложение | FileStorageContainer.Selected | Недоступно. |
Примечание.
Помимо разрешений Microsoft Graph, ваше приложение должно иметь необходимые разрешения на уровне типа контейнера или разрешения для вызова этого API. Дополнительные сведения см. в разделе Типы контейнеров. Дополнительные сведения о разрешениях на уровне типа контейнера см. в статье Авторизация SharePoint Embedded.
HTTP-запрос
PATCH /storage/fileStorage/containers/{containerId}/permissions
Заголовки запросов
| Имя | Описание |
|---|---|
| Авторизация | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
| Content-Type | application/json. Обязательно. |
Текст запроса
В тексте запроса укажите объект JSON со следующими свойствами.
| Имя | Тип | Описание |
|---|---|---|
| @context | String | Заметка OData, идентифицирующая тип полезных данных. Должно быть задано значение , #$delta чтобы сигнализировать о операции разностного исправления. Обязательно. |
| значение | Коллекция объектов permission | Коллекция из до 10 объектов разрешений для обработки. Обязательно. |
Каждая запись в коллекции значений представляет одну операцию с разрешением. Наличие свойства id определяет, как интерпретируется запись. Добавьте идентификатор существующего разрешения для его обновления или опустите идентификатор для создания нового разрешения.
Каждая запись поддерживает следующие свойства и заметки:
| Имя | Тип | Описание |
|---|---|---|
| id | String | Идентификатор существующего разрешения. При наличии идентификатора элемент обрабатывается как обновление. Если идентификатор опущен, элемент обрабатывается как операция создания. Необязательный параметр. |
| grantedToV2 | sharePointIdentitySet | Для разрешений типа пользователя укажите сведения о пользователе для этого разрешения. Требуется для операций создания. Не указывайте для операций обновления. |
| roles | Набор строк | Тип разрешения для предоставления. Допустимые значения: reader, writer, manager, owner. Требуется для операций создания и обновления. |
| @microsoft.graph.conflictBehavior | String | Параметр заметки, который управляет поведением, когда целевое удостоверение уже является членом контейнера с другой ролью. Возможные значения: fail, replace. Значение по умолчанию — fail. Применяется только к операциям создания. Необязательный параметр. |
Заметка @microsoft.graph.conflictBehavior указана для каждого элемента. Значение fail по умолчанию приводит к сбою элемента с кодом отклика для каждого элемента 409 Conflict . Значение replace заменяет существующую роль для удостоверения ролью, указанной в элементе, и элемент завершается успешно. Любое другое значение приводит к сбою элемента с кодом ответа для каждого элемента 400 Bad Request .
Элементы обновления не должны содержать свойства, отличные от идентификаторов и ролей. Свойство roles является обязательным. Элементы, нарушающие любое правило, завершаются ошибкой с кодом ответа для каждого элемента 400 Bad Request .
Отклик
В случае успешного 200 OK выполнения этот метод возвращает код отклика и коллекцию объектов разрешений в тексте ответа. К успешно обработанным разрешениям относится объект разрешений . Неудачные элементы включают заметку @Core.DataModificationException со сведениями об ошибке.
Этот API также может возвращать следующие коды ответа на ошибки для всего запроса:
| Код HTTP | Описание |
|---|---|
| 400 | Неправильный запрос. |
| 401 | В запросе отсутствуют действительные учетные данные проверки подлинности. |
| 403 | Предоставленные учетные данные проверки подлинности являются допустимыми, но недостаточными для выполнения запрошенной операции. Примеры сценариев: вызывающее приложение не имеет разрешения на управление разрешениями для контейнеров этого типа, либо вызывающий пользователь не имеет разрешений на этот экземпляр контейнера, либо его роль не разрешает управление разрешениями контейнера. |
| 404 | Контейнер не существует. |
| 423 | Контейнер заблокирован. Например, контейнер архивируется. |
Примеры
Запрос
В следующем примере показан один разностный запрос на исправление, который смешивает создание и обновление элементов в одном вызове. Элементы без идентификатора обрабатываются как операции создания; элементы с идентификатором обрабатываются как операции обновления. Элементы, которые завершаются сбоем, отображаются в виде заметки @Core.DataModificationException . Остальные элементы по-прежнему успешно выполнены.
PATCH https://graph.microsoft.com/beta/storage/fileStorage/containers/b!ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z/permissions
Content-Type: application/json
{
"@context": "#$delta",
"value": [
{
"roles": ["reader"],
"grantedToV2": {
"user": {
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@microsoft.graph.conflictBehavior": "replace",
"roles": ["writer"],
"grantedToV2": {
"user": {
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"roles": ["owner"],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": ["manager"]
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ",
"roles": ["manager"]
}
]
}
Отклик
Ниже показан пример отклика. Первые две операции создания успешно выполняются. Вторая операция заменяет существующую роль для целевого пользователя. Третья операция создания завершается сбоем, так как удостоверение уже является членом контейнера с другой ролью. Первая операция обновления выполнена успешно. Вторая операция обновления завершается сбоем, так как не существует разрешения с этим идентификатором.
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#storage/fileStorage/containers('b%21ISJs1WRro0y0EWgkUYcktDa0mE8zSlFEqFzqRn70Zwp1CEtDEBZgQICPkRbil_5Z')/permissions/$delta",
"value": [
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"reader"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGthdGVAY29udG9zby5jb20",
"roles": [
"writer"
],
"grantedToV2": {
"user": {
"displayName": "Kate Brown",
"id": "2b3c4d5e-2222-3333-4444-555566667777",
"userPrincipalName": "kate@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Create",
"responseCode": 409,
"info": {
"code": "Conflict",
"message": "Conflict: this identity is a [Reader] member of the container and cannot be added to the [Owner] role."
}
},
"id": "00000000-0000-0000-0000-000000000000",
"roles": [
"owner"
],
"grantedToV2": {
"user": {
"userPrincipalName": "mike@contoso.com"
}
}
},
{
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfGFsZXhAY29udG9zby5jb20",
"roles": [
"manager"
],
"grantedToV2": {
"user": {
"displayName": "Alex Wilson",
"id": "1a2b3c4d-1111-2222-3333-444455556666",
"userPrincipalName": "alex@contoso.com"
}
}
},
{
"@Core.DataModificationException": {
"@odata.type": "#Org.OData.Core.V1.DataModificationExceptionType",
"failedOperation": "Update",
"responseCode": 404,
"info": {
"code": "NotFound",
"message": "Item not found."
}
},
"id": "X2k6MCMuZnxtZW1iZXJzaGlwfG5vdGFmb3VuZEBjb250b3NvLmNvbQ"
}
]
}