我试图了解 Microsoft Graph 权限(添加到应用程序注册中的权限),并且遇到了它们之间的一些重叠和层次关系。然而,我正在努力寻找一个全面的描述或层次结构树来概述哪些权限被其他权限覆盖以及整体结构。
任何人都可以为我指明正确的方向,或者提供有关在哪里可以找到有关这些权限重叠的详细信息的见解吗?
您可以分享的任何文档或参考资料将不胜感激!
注意:存在多个重叠或具有层次结构的 Microsoft Graph API 权限。
对于 示例:Microsoft Graph API 权限
User.ReadWrite.All
重叠 User.Read.All
。
User.ReadWrite.All
允许应用程序读取和写入所有用户配置文件属性。User.Read.All
允许应用程序读取所有用户配置文件属性。User.ReadWrite.All
包含 User.Read.All
的所有权限,因此如果您想允许应用程序读取和写入所有用户配置文件属性,那么您只能分配 User.ReadWrite.All
而不是 User.Read.All
。
我创建了一个 Microsoft Entra ID 应用程序 并授予了
User.ReadWrite.All
API 权限:
通过邮差生成访问令牌:
https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
client_id:ClientID
client_secret:ClientSecret
grant_type:client_credentials
scope:https://graph.microsoft.com/.default
解码后的令牌:
因此,通过使用上述令牌应用程序可以读取和写入用户配置文件:
阅读用户个人资料:
GET https://graph.microsoft.com/v1.0/users/UserID
写入用户个人资料:
PATCH https://graph.microsoft.com/v1.0/users/UserID
{
"businessPhones": [
"xxx"
],
"officeLocation": "18/2111"
}
Application.Read.All
和 Application.ReadWrite.All
、Files.Read.All
和 Files.ReadWrite.All
等等相同。欲了解更多详情,参考以下MsDoc: