Microsoft图形中,上传到共享点驱动器:调用方未通过身份验证



这项工作在我的应用程序托管在本地主机上

"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/items/01VI7PMEF6Y2GOVW7725BZO354PWSELRRZ?%24filter=folder ne null&%24select=id%2cfolder%2cname%2cparentReference%2cwebUrl"
"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/items/01VI7PMEF6Y2GOVW7725BZO354PWSELRRZ?%24filter=folder ne null&%24select=id%2cfolder%2cname%2cparentReference%2cwebUrl"
"https://graph.microsoft.com:443/v1.0/sites/test.sharepoint.com,edc2dd46-cea8-4b10-a872-cd1a55ba4529,b14c0787-d4c1-4f4a-9a6c-7e010d794be9/drives/b!Rt3C7ajOEEuocs0aVbpFKYcHTLHB1EpPmmx-AQ15S-nygMtHkkWNRaaOc2GebusJ/root:/Presentation.en-GB.pptx:/microsoft.graph.createUploadSession"

但是当我将应用程序作为 Web 应用程序上传到 azure 上的生产服务器上时。

我通过尝试按 id 查找共享点网站并创建上传会话来收到此错误。

外部:Microsoft.Graph.ServiceException: Code: itemNotFound 消息:找不到资源。

内部:Microsoft.Graph.Service异常: 代码: 未经身份验证 消息:呼叫者未通过身份验证。

为什么它适用于本地主机而不是我的 Azure 应用程序? 开发和生产的应用注册不同,但权限相同。

我知道的唯一区别是我后来添加了Sites.Read.All权限,而不是在 https://apps.dev.microsoft.com/年注册用于生产的应用程序时。

我正在使用Microsoft Graph客户端来获取访问令牌。 我也尝试删除所有离线令牌,但它不起作用。

如果我没记错的话,当我添加权限Sites.Read.All时,我收到了一个新的同意请求。

在应用程序中启用的权限: 电子邮件, 文件.读取, 文件.读写, 文件.读写.应用文件夹, offline_access, openid, profile, site.Read.All, User.Read

有什么不对吗?

生产登录:

{
typ: "JWT",
alg: "RS256",
kid: "VWVIc1WD1Tksbb301sasM5kOq5Q"
}.
{
aud: "f53962c3-2bd4-4302-adcf-49d9a93ccef0",
iss: "https://login.microsoftonline.com/GUID/v2.0",
iat: 1502142424,
nbf: 1502142424,
exp: 1502146324,
aio: "ATQAy/8DAAAAo99zdMc3jCP7sR8Zw0iKijdu1Nv2AeJOpJ65OHtXb0o8QjTm9O320mHxIAv5tWJw",
c_hash: "APreKq7N3Y0oG8SP6ipZdA",
name: "First name Last name",
nonce: "636377394901824543.ZWQ4MGVkYmEtYTMzMS00ZDUyLTgzZmYtYWFjMmRkNWRjNzhhNTAxMWUyYzItOGNhNi00N2IzLTk5MGEtMTVmYTlhYzBkNDVk",
oid: "4f64d4db-8115-4f19-8554-bedf20688226",
preferred_username: "firstname.lastname@company.com",
sub: "rxGHRTX9YHogzaC_HgOmXvoKJ0Xye6Rk5HPAjLphQRc",
tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47",
ver: "2.0"
}.

本地登录:

{
typ: "JWT",
alg: "RS256",
kid: "VWVIc1WD1Tksbb301sasM5kOq5Q"
}.
{
aud: "36d2abdd-2363-4ff9-b597-77d41e0e3b81",
iss: "https://login.microsoftonline.com/GUID/v2.0",
iat: 1502173871,
nbf: 1502173871,
exp: 1502177771,
aio: "ATQAy/8EAAAA2JCq8vpq6La3M0KIKWw1vgJOfhDQyurYRhbCR47qSjByGzPkyZX0zi5y9uYCQS+q",
c_hash: "3JkkVwHgmYiHvR-gVdb22w",
name: "First name Last name",
nonce: "636377709651517241.MDNkOWNhYzMtYjk4NC00OTBkLWI2Y2EtYzU5NmM0NWZjOGExNWQxZmU3MTgtN2RhYS00NjVlLTkwZDgtZjIwOGY4NTcyNTZi",
oid: "4f64d4db-8115-4f19-8554-bedf20688226",
preferred_username: "firstname.lastname@company.com",
sub: "MRN4y1TZ-qG1uxrL7ozf8KbBm0VbcbH7djaKK187qH8",
tid: "34e9a1f3-23e1-4ead-b2fd-41660c25cc47",
ver: "2.0"
}.

另请阅读评论以获取更多详细信息。

我在登录后在令牌上使用 http://calebb.net/发现了错误。

Azure 应用注册缺少权限Files.ReadWrite.Allbut 开发都没有权限,但权限以某种方式包含在范围内。

Bug in Azure?如果我没记错的话,我在应用程序注册中包含了很多权限,然后删除了其中的大部分权限,包括 Files.ReadWrite.All。

即使我的 WebApp 未在范围和应用注册中包含权限,权限 Files.ReadWrite.All 也会保留在每个应用注册的现有用户的范围内。这就是它在开发环境中工作的原因。

谢谢Marc LaFleur - MSFT。

相关内容

最新更新