Microsoft Graph Api, Onedrive ou Sharepoint: как получить роль текущего пользователя для чтения или witre

#microsoft-graph-api #microsoft-graph-files

#microsoft-graph-api #microsoft-graph-files

Вопрос:

Как получить текущую роль разрешения пользователя для папки (или файла) с помощью MS Graph Api?

Я пытаюсь: https://graph.microsoft.com /[версия v1.0 или бета-версия]/диски/[Идентификатор диска]/элементы/[Идентификатор элемента]/разрешения

но массив ролей пуст для всех, кроме владельца…

Я хотел бы показать пользователю определенный значок, если он может читать или записывать в папку.

Спасибо

—Редактировать 1—

у пользователя не было прямого разрешения на доступ к папке, но он входит в группу безопасности, у которой есть роль чтения.

пользователь может читать (открывать) любую информацию из этой папки, мне просто нужно что-то знать, может ли он читать и записывать (или нет) в папке.

Когда я пытаюсь писать без разрешения good, я получаю ошибку 403, я хотел бы знать «до» этой ошибки, которую пользователь не смог записать в эту папку..

—Правка 2—

Я пробую все, что говорится в документе: https://learn.microsoft.com/en-us/graph/api/permission-get?view=graph-rest-1.0amp;tabs=http

GET /диски/{идентификатор диска}/ элементы/{идентификатор элемента}/разрешения/{пермский идентификатор} => Роли пустые

GET /groups/{group-id}/drive/items/{item-id}/permissions/{perm-id} => У групп безопасности не было никакого диска

GET /me/drive/items/{item-id}/permissions/{perm-id} => Элемент (папка) отсутствует на пользовательском диске

GET /sites/{site-id}/drive/items/{item-id}/permissions/{perm-id} => это не сайт sharepoint

GET /users/{user-id}/drive/items/{item-id}/permissions/{perm-id} => Роли пустые

Чего я не понимаю, так это того, что я могу читать, перечислять, добавлять и удалять файл (если у меня есть роль записи) без каких-либо проблем, но я не вижу список ролей..

— Правка 3 —

Если вы хотите воспроизвести pb, выполните это :

  • Создайте пользователя в Azure Active Directory (AAD), добавьте к нему лицензию Microsoft Office 365 (в моем случае business) с именем «User1»

  • Создайте в нем папку Onedrive для бизнеса с именем «Общий»

  • Создайте в AAD группу безопасности (пусть назовет ее «Читатели»)

  • Поделитесь предыдущей папкой с группой «Читатели» и сделайте ее доступной только для чтения (в моем случае я использую для этого онлайн-сайт onedrive)

  • Создайте в AAD другого пользователя (с лицензией или без нее) с именем «User2»

  • Добавьте его в группу «Читатели»

Теперь перейдите в Graph Explorer и введите этот URL-адрес в текстовое поле ввода :

https://graph.microsoft.com/v1.0/drives /[Идентификатор диска пользователя 1]/элементы/[Идентификатор элемента «Общей» папки]/Разрешения

вы должны получить этот результат :

 {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives('...')/items('...')/permissions",
"value": [        
    {
        "id": "...",
        "roles": [], 
        "grantedTo": {
            "user": {
                "displayName": "Readers"
            }
        }
    },
    {
        "id": "...",
        "roles": [
            "owner"
        ],
        "grantedTo": {
            "user": {
                "email": "user1@mydomain.com",
                "id": "...",
                "displayName": "User1"
            }
        }
    }
]
  

}

Как вы можете видеть, первый массив ролей пуст, а массив ролей владельца — нет..

Комментарии:

1. Если массив ролей пуст, это означает, что другим пользователям, кроме владельца, не назначено разрешение. Пожалуйста, попробуйте добавить разрешение для пользователя / пользователей, а затем попытайтесь получить разрешение.

2. спасибо за ваш ответ, это правда, у «пользователя» не было никаких разрешений для учетной записи is, но он находится внутри группы безопасности, у которой есть разрешение на чтение в этой папке. вот почему у меня может быть другая информация (например, имя пользователя и группы, которые могут читать или записывать в эту папку), но единственное, чего не хватает, — это пустой массив «rorle»…

3. Вы пробовали с помощью идентификатора группы проверять наличие разрешений, я имею в виду получение разрешений для идентификатора группы?

4. Да, и у групп безопасности не было никакого диска, диск принадлежит другому пользователю, который имеет на него некоторые разрешения для групп безопасности. Показать мое редактирование 2

5. Не могли бы вы сообщить нам, какой сценарий вы используете, делегированные или прикладные разрешения, и используете ли вы какую-либо учетную запись MSA или учетную запись Work / school?