我们使用Microsoft Graph和范围openid,email,profile和read.readBasic.all为公共社区创建了一个融合应用程序(AD和实时用户可以登录)。
对于实时用户来说,每件事都可以正常工作,但有些AD用户无法登录。当他们尝试登录时,他们会收到消息
“应用程序需要权限才能访问您组织中的资源 只有管理员可以授予。请要求管理员授予权限 这个应用程序才可以使用它。“
根据Microsoft document,我们已准备好管理员同意网址
https://login.microsoftonline.com/<TenantID>/oauth2/authorize?client_id=<AppID>&response_type=code&redirect_uri=<RedirectURI>&prompt=admin_consent
管理员同意后,用户也无法登录该应用。请帮助我们这里缺少的东西。
答案 0 :(得分:3)
您的URL适用于v1端点,而不是v2端点(也称为融合端点)。
它看起来应该是这样(换行符为换行符):
https://login.microsoftonline.com/common/adminconsent?
client_id=[APPLICATION ID]&redirect_uri=[REDIRECT URI]
请注意,它是/adminconsent
而不是/authorize
,并且没有prompt
查询参数。另请注意,您需要确保您的注册包含您希望获得同意的范围。
我写了一篇文章,引导您完成整个过程,该过程应该对此有所帮助:v2 Endpoint and Admin Consent