【问题标题】:[AADSTS65001]: The user or administrator has not consented to use the application[AADSTS65001]:用户或管理员未同意使用该应用程序
【发布时间】:2017-06-12 21:39:06
【问题描述】:

我正在编写一个测试应用程序,它使用 AAD 来获取令牌,并且对于具有 TenantId“abc”的一个用户,此调用成功,但对于具有以下消息的另一个租户 ID“xyz”的用户失败:

用户或管理员未同意使用该应用程序 ID f5986c14-cdb9-4e68-a89e-119d15b33afc。发送互动 对此用户和资源的授权请求。

请注意:

  1. 我在我的 AAD 中创建了一个本机应用程序

  2. 我已将来自另一个租户的这些用户作为用户角色添加到目录的用户列表中,并且我们将本机应用程序的权限授予 Windows azure 管理门户中目录中的所有用户Screenshot Here

【问题讨论】:

标签: c# adal


【解决方案1】:

拥有 xyz 域 (email@xyz.onmicrosoft.com) 的公司的 IT 管理员必须代表整个公司同意,以便该公司的用户能够使用您的应用程序。这是一个非常好的流程示例:

https://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/

【讨论】:

  • 感谢您的回复,是的,我们阅读了此文档,看起来它仅适用于 Web 应用程序。原生应用程序怎么样?我们的应用程序类型是原生应用程序。对于原生应用程序,我认为有点不同。
  • @Priyaa 对于本机和 Web 应用程序的流程是相同的。
【解决方案2】:

无论原生应用还是网页应用,如果要让其他租户的用户可以使用应用,需要应用先同意。而且您在帖子中链接的数字仅授予租户应用注册的权限。

AidaNow 已提供使用 adal.js 来授予管理员同意。我们还可以通过使用prompt 参数轻松地发出HTTP 请求以授予管理员同意。这是您的参考请求(参考this link):

https://login.microsoftonline.com/common/oauth2/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&resource=https%3A%2F%2Fservice.contoso.com%2F
&state=12345
&prompt=admin_consent

关于同意的更多细节,您可以参考以下文档:

How to sign in any Azure Active Directory (AD) user using the multi-tenant application pattern

【讨论】:

  • 非常感谢您的回复。我尝试了上面的命令,但是当我登录时,我收到以下错误“抱歉,我们在登录时遇到问题。我们收到了错误的请求。”
  • 其他技术信息:相关 ID:897e130f-5cf9-499c-9243-d095456a8ea3 时间戳:2017-06-13 17:19:27Z AADSTS50001:在租户中找不到名为 scheduler.teams.microsoft.com 的应用程序命名为 skypetestsyt0mngc.onmicrosoft.com。如果租户管理员未安装应用程序或未获得租户中任何用户的同意,则可能会发生这种情况。您可能将身份验证请求发送给了错误的租户。
  • URl 试过:login.microsoftonline.com/common/oauth2/authorize? client_id=f5986c14-cdb9-4e68-a89e-119d15b33afc &response_type=code &redirect_uri=urn:ietf:wg:oauth:2.0:oob &response_mode=query &resource=https%3A%2F%2Fscheduler.teams.microsoft.com%2F &state=12345 &prompt=admin_consent
  • 该错误表明应用程序scheduler.teams.microsoft.com没有在目标租户中退出。如果该应用程序是由您的公司开发的,您需要将本机应用程序的 App ID 添加为 knownClientApplications 以供 scheduler.teams.microsoft.com 应用程序使用。如果应用程序是由其他公司开发的,请使用上述请求首先在目标租户中授予该应用程序的权限。如果您仍然有问题,请随时告知并查看帖子中的链接,这对了解多租户应用程序开发非常有帮助
  • 另外,如果应用scheduler.teams.microsoft.com是贵公司开发的,请务必开启多租户,以便其他租户使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 2021-05-24
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2022-01-15
相关资源
最近更新 更多