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 这样做,您可以使用 AllPrincipals
的 consentType
创建一个 oAuth2PermissionGrant
对象。
我个人不建议使用 recordConsentConditions
属性。它只是出于遗留原因而存在 - 我什至不知道它的作用。
在与 Microsoft 支持人员联系后,这是他们方面的错误。他们昨天告诉我,工程师团队承认了。会修复的。
(与
我有一个应自动供所有客户租户使用的应用程序,因此尝试 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 这样做,您可以使用 AllPrincipals
的 consentType
创建一个 oAuth2PermissionGrant
对象。
我个人不建议使用 recordConsentConditions
属性。它只是出于遗留原因而存在 - 我什至不知道它的作用。
在与 Microsoft 支持人员联系后,这是他们方面的错误。他们昨天告诉我,工程师团队承认了。会修复的。