microsoft entra 个人帐号注册应用无法访问用户授权的 onenote

Lei long 20 信誉分
2025-12-01T11:51:42.73+00:00

请问一下,我在 https://entra.microsoft.com/ 上面注册的个人帐号,然后注册了应用,应用也绑定了权限,然后通过重定向让用户授权,使应用可以读取用户的 onenote, 授权后回调地址也获取到了授权码,通过授权码获取了 token, 通过 token 访问 https://graph.microsoft.com/v1.0/me ,可以正常获取用户的信息,但是 https://graph.microsoft.com/v1.0/me/onenote/notebooks 就报错了,提示
RuntimeError: Graph API GET failed (401): {"error":{"code":"40001","message":"The request does not contain a valid authentication token. Detailed error information: {0}","innerError":{"date":"2025-12-01T09:17:39","request-id":"[版主注:个人信息已删除]","client-request-id":"[版主注:个人信息已删除]"}}}

这是什么原因呢,是因为个人帐户的应用不能访问 /v1.0/me/onenote/notebooks 吗,是需要购买 Microsoft 365 的企业帐号,创建的应用才能访问吗

用户的图像

用户的图像

Microsoft 365 和 Office | OneNote | 商业版 | Windows

问题作者接受的答案
Michelle-N 20,745 信誉分 Microsoft 外部员工 审查方
2025-12-01T13:57:45.8333333+00:00

请注意,我们的论坛是公开平台,我们会修改你的问题,在描述中隐藏你的个人信息。下次发布错误或其他细节时,请务必隐藏任何个人信息或组织信息,以保护个人数据。

注:此回复已自动翻译。因此,它可能包含语法错误或表达尴尬。

你好 @Lei long

感谢你通过Microsoft问答论坛与我联系。

根据您的描述,我了解到您在 Microsoft Entra 上使用个人账号注册了应用,并成功通过 OAuth 流程获取了 Access Token。虽然您可以正常访问 /v1.0/me 获取用户信息,但在访问 /v1.0/me/onenote/notebooks 时却遇到了(提示请求未包含有效的身份验证令牌)。

经过查阅相关文档,这个问题似乎与您配置的具体权限(Permissions)有关。

根据 Microsoft Graph 关于“获取笔记本列表”的官方文档:

  • Notes.Read.All 通常更多地作为 Application(应用程序) 权限使用,虽然它也可以作为 Delegated 权限,但往往需要管理员同意。
  • 对于您正在使用的 Delegated(委托) 流程(即用户登录授权),最低特权权限(Least Privileged Permissions) 是 Notes.Create,更高级的权限是 Notes.Read 或 Notes.ReadWrite。

用户的图像

我在我的 Graph Explorer 环境中使用个人账号进行了测试,当赋予正确的 Delegated 权限(如 Notes.Read)时,接口是可以正常工作的。

请检查您的应用注册以及代码中请求的 Scope。尝试将您的权限范围更改为 Notes.Read),而不是 Notes.Read.All,并确保用户已对该特定 Scope 进行了授权。

您可以参考官方文档: 列出笔记本

如有任何更新,请告知。


如果答案有帮助,请点击“接受答案”并点赞。如果您对此回答有更多疑问,请点击“评论”。

注意:如果您希望收到本帖相关的邮件通知,请按照我们文档中的步骤启用电子邮件通知。

此答案是否有帮助?

2 个人认为此答案很有帮助。

0 个其他答案

排序依据: 最新

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。