Azure active directory Microsoft Graph API工作帐户使用便笺进行授权。读取范围需要管理员批准

Azure active directory Microsoft Graph API工作帐户使用便笺进行授权。读取范围需要管理员批准,azure-active-directory,microsoft-graph-api,onenote,Azure Active Directory,Microsoft Graph Api,Onenote,我正在尝试使用Microsoft Graph API V2.0访问用户的OneNote笔记本 我正在尝试使用以下链接示例通过OAuth进行授权: https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize? response_type=code &client_id={id} &redirect_uri={url} &scope=Notes.Read%20off

我正在尝试使用Microsoft Graph API V2.0访问用户的OneNote笔记本

我正在尝试使用以下链接示例通过OAuth进行授权:

https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize?
    response_type=code
    &client_id={id}
    &redirect_uri={url}
    &scope=Notes.Read%20offline_access
    &state={state}
当我使用工作帐户登录时,我会收到一条消息,上面说:

{app_name}需要权限才能访问组织中只有管理员才能授予的资源。请先请求管理员授予此应用的权限,然后才能使用它

以及:

消息:AADSTS90094:授予需要管理员权限

使用管理员帐户我没有问题

从中,所有注释范围(即
Notes.Read
Notes.ReadWrite
Notes.Create
Notes.ReadWriteAll
)均无需管理员同意


是否有任何理由请求管理员权限?

当Azure AD实例/租户禁用“用户可以同意应用程序代表他们访问公司数据”时,就会发生这种情况。这是Azure AD中的全局用户设置:

当此选项设置为
时,将阻止用户执行流:


为了避免这种情况,管理员需要代表用户同意,或者需要重新启用用户同意选项(这是推荐的解决方案,完全关闭用户同意几乎没有合理的理由)

我们写了一篇详细的文章,讨论了最常见的情况。我怀疑问题已在第一部分中解决,您的IT管理员需要允许用户请求访问。

您可以添加应用程序注册的清单(您可以从Azure门户或
apps.dev.microsoft.com
,具体取决于您注册的位置)吗?您特别需要哪个部分?我可以授权使用例如清单是应用程序注册的JSON表示(即,您的AppId、名称等)。您可以从Azure门户或(取决于您注册应用程序的位置)获得它。这就足够了吗?无论您尝试针对哪个广告租户进行身份验证,都会发生这种情况吗?我想知道广告租户是否禁用了“用户可以同意应用程序代表他们访问公司数据”选项。感谢您的回复。我认为残疾人在这里不是问题,因为他们不需要管理员的同意。为什么它与
https://login.microsoftonline.com/organizations/oauth2/authorize
endpoint?为什么使用just时这不是问题?你是说这个AppId与
https://login.microsoftonline.com/organizations/oauth2/authorize
但不是
https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize
?或者你是说不同的应用程序Id?对不起,不同的应用程序Id。与
https://login.microsoftonline.com/organizations/oauth2/authorize
不是为
v2.0
端点注册的(这里可能会有混淆),在您自己的租户中向v1注册的应用程序的行为会有所不同。这将阻止用户授权外部(多租户)应用程序,租户管理员创建的内部应用程序已被授权。好的,谢谢!最后一个问题,为什么需要管理员权限而不需要?