相关疑难解决方法(0)

MS Graph,daemon app 401未经授权对Files.ReadWrite.All调用

更新:我收到微软的通知,这个问题是Graph API中的一个错误.他们正在研究解决方案.

我正在使用新的v2.0 OAuth流来验证我的应用程序,以便与Microsoft Graph一起使用,以便能够列出任何用户文件,下载和上传任何用户的文件OneDrive并设置文件权限.这没有用户登录,即将其作为服务帐户/守护程序运行.

我在新的应用程序注册门户中设置了一个新的"融合应用程序".我已经设置了所有必要的范围/应用程序权限,包括Files.ReadWrite.All.(我实际检查了所有可能的盒子......).在Microsoft Graph文档中,这应该是调用我感兴趣的端点时唯一必需的范围:

/v1.0/users/{userID}/drive
/v1.0/users/{userID}/drive/items/{ItemID}/children
/v1.0/users/{userID}/drive/items/{ItemID}/content
/v1.0/users/{userID}/drive/items/{ItemID}/invite
/v1.0/users/{userID}/drive/items/{ItemID}/createLink    
Run Code Online (Sandbox Code Playgroud)

然后,我按照客户端凭据流程的文档进行操作,包括向应用程序提供管理员同意,以便在我的公司租户中使用.

我成功收到了访问令牌.收到访问令牌后,我在jwt.io上仔细检查过令牌实际上是否包含所有范围(包括Files.ReadWrite.All).

我可以使用此访问令牌获取任何用户的驱动器并列出任何用户文件(上面列出的前两个端点).我也尝试获取任何用户文件的缩略图,它们工作正常.但是一旦我尝试下载文件,添加文件权限或创建共享链接(上面列出的最后三个端点),我就会收到401 Unauthorized错误.由此,我假设范围Files.Read.All工作正常,但范围Files.ReadWrite.All不起作用.

至于我从Scopes文档中可以理解的内容,我尝试使用的范围应该可行.它是"仅限应用程序的权限,需要管理员同意"部分,它描述Files.ReadWrite.All为:

允许该应用在没有登录用户的情况下读取,创建,更新和删除所有网站集中的所有文件.

我撞墙了.新版v2.0 OAuth令牌和/或Microsoft Graph是否存在限制,因为我缺少仅限App的访问权限?

azure-active-directory onedrive microsoft-graph

9
推荐指数
1
解决办法
392
查看次数