Azure AD 应用程序预先同意不起作用

Azure AD application preconsent not working

(与相关)

我有一个应自动供所有客户租户使用的应用程序,因此尝试 this tutorial 启用 preconsent

执行 Powershell 命令并再次获取应用程序后,我可以看到它已启用:

PS C:\Windows\system32> $graphResponse.value.recordConsentConditions
SilentConsentForPartnerManagedApp

但是,当创建新租户(或使用现有租户)并尝试访问 Microsoft Graph 的 /users 调用时,我收到 500 错误,直到我导航到 https://login.windows.net/common/oauth2/authorize?response_type=code&client_id={0}&prompt=admin_consent(使用 {0}作为应用程序的 cliendId),以管理员身份登录并接受委派。

我是不是漏掉了一步?

为了查询 MS Graph,您的应用需要由最终用户或租户管理员授予适当的权限。通常,获得管理员同意的最佳方式是使用 prompt=admin_consent 参数,就像您在上面所做的那样。

如果出于某种原因您必须通过 powershell 这样做,您可以使用 AllPrincipalsconsentType 创建一个 oAuth2PermissionGrant 对象。

我个人不建议使用 recordConsentConditions 属性。它只是出于遗留原因而存在 - 我什至不知道它的作用。

在与 Microsoft 支持人员联系后,这是他们方面的错误。他们昨天告诉我,工程师团队承认了。会修复的。