После того, как файл загружен в OneDrive группы Office 365 с помощью Graph API, мы хотим отозвать разрешения по умолчанию для файла. Однако в группах, которые были созданы совсем недавно, это не удается.
По умолчанию права доступа к файлу - «GroupName Owners», «GroupName Members» и «GroupName Visitors». Мы хотим удалить эти разрешения и предоставить доступ к определенным группам безопасности AD.
После загрузки файла мы видим два разных результата при получении разрешений по умолчанию (при подготовке к их удалению).
В одном случае мы получаем четыре разрешения - три из них, перечисленные выше, плюс «специальное» разрешение, которое имеет grantTo для пользователя с идентификатором, совпадающим с идентификатором группы. Мы научились не удалять это разрешение, так как мы теряем возможность удалять другие разрешения.
Здесь это «специальное» разрешение стоит первым в списке:
{
"@odata.context": "https://graph.microsoft.com/V1.0/$metadata#drives('b%21Y25ow5oitkOvNToutf7LrYZ-y78P2jBEjoGLzb3oPqnw0a3YKFDwTobjTB4gYxKt')/root/permissions",
"value": [
{
"grantedTo": {
"user": {
"id": "273c2c33-8533-445d-ae65-4b63be296995",
"displayName": "SharePoint Tests"
}
},
"id": "Yzowby5jfGZlZGVyYXRlZGRpcmVjdG9yeWNsYWltcHJvdmlkZXJ8MjczYzJjMzMtODUzMy00NDVkLWFlNjUtNGI2M2JlMjk2OTk1X28",
"roles": [
"write"
]
},
{
"grantedTo": {
"user": {
"displayName": "SharePoint Tests Owners"
}
},
"id": "U2hhcmVQb2ludCBUZXN0cyBPd25lcnM",
"roles": [
"SP.Full Control",
"write"
]
},
{
"grantedTo": {
"user": {
"displayName": "SharePoint Tests Visitors"
}
},
"id": "U2hhcmVQb2ludCBUZXN0cyBWaXNpdG9ycw",
"roles": [
"read"
]
},
{
"grantedTo": {
"user": {
"displayName": "SharePoint Tests Members"
}
},
"id": "U2hhcmVQb2ludCBUZXN0cyBNZW1iZXJz",
"roles": [
"SP.Edit"
]
}
]
}
Однако в течение периода после создания группы после загрузки файла мы получаем обратно только 3 разрешения - специального, упомянутого выше, нет. В этом случае при попытке удалить другие разрешения появляется код ошибки «не аутентифицирован». Например.
DELETE https://graph.microsoft.com/V1.0/drives/b!zn7l0OHTmUa3lGABIbIGQIZ-y78P2jBEjoGLzb3oPqnw0a3YKFDwTobjTB4gYxKt/items/013LUA5IQEPURED3OSURAI27FBHDYLFQJP/permissions/U2FnZSAtIFBBUiBTZWN1cml0eSA0IE93bmVycw
Мы все еще можем добавлять разрешения, но не отменять те, которые используются по умолчанию.
Это условие сохраняется для всех файлов, созданных в данной объединенной группе Office 365, в течение нескольких минут после ее создания.
На данный момент наш единственный вариант - создать фиктивный файл и посмотреть, получим ли мы 3 или 4 разрешения (или просто попробуйте удалить разрешения по умолчанию). Если мы получим только 3, попробуйте еще раз через некоторое время. Но это кажется хрупким взломом и значительно увеличивает время (несколько минут) на наш процесс загрузки.
Есть ли у кого-нибудь лучшие предложения или объяснения такого поведения?
Спасибо