gpt4 book ai didi

azure - 为什么我的应用程序注册设置需要管理员同意?

转载 作者:行者123 更新时间:2023-12-03 02:40:52 33 4
gpt4 key购买 nike

我真的希望有人能够解释为什么在我们的情况下需要管理员同意,如果可能的话,我们如何避免它。以下是我们正常应用程序的简化版本,我能够在其中重现该问题。

我控制两个租户:T1,用于开发以及所有应用程序注册/资源所在的位置。还有租户 T2,我可以在其中控制所有用户设置,并用它来测试 Multi-Tenancy 。

在 T1 中,我注册了两个名为“app-frontend”和“app-api”的应用程序注册。两者都具有 User.Read on Graph 所需的权限。此外,app-api 公开了一个(管理员和用户)范围,该范围被设置为应用程序前端所需的权限。 App-frontend 也在 app-api 上注册为已知客户端应用程序。

现在我们期望的行为是,当用户第一次请求应用程序前端的 token 时,他们会被请求同意并在接受后给予 token 。对于任何非管理员帐户,这会导致在使用 T2 的用户进行测试时出现“需要管理员批准”错误。当从 app-frontend 到 app-api 所需的权限被删除时,同意对于非管理员用户来说效果很好。

我在这里浏览了许多答案,试图找出为什么这里似乎需要管理员同意,但建议的答案/原因似乎都不适用于我们的案例。总结一下:

  • T2 中的“用户可以注册应用程序”设置已启用。
  • “用户可以同意应用代表他们访问公司数据”设置在 T2 中处于启用状态。
  • 不需要进行用户分配(对于任一应用注册)。
  • 这两个应用注册都不需要其他权限(因此不涉及应用程序权限)。
  • 向 v1 和 v2 端点发出请求时都会出现此问题。

当应用程序前端的唯一权限是 User.Read 时,我希望其中的大多数也会导致需要管理员同意,但只有当存在对应用程序 API 范围的所需权限时,才会出现问题。

如果需要任何其他信息,我很乐意提供,我已经花了很长时间来解决这个问题。

更新:两次注册时设置的应用程序权限的屏幕截图。

前端应用注册:Front end app registration

API应用注册:Api app registration

最佳答案

我没有重现您的问题,请参阅下面的步骤。

1.在租户A创建tonyFronEnd应用程序和tonyBackend应用程序,它们都是 Multi-Tenancy 应用程序。此外,tonyFronEnd 应用程序可以访问 tonyBackend 应用程序。并且 File.Read 不需要管理员同意。

enter image description here

enter image description here

2.使用tennatB的用户登录tonyFronEnd应用程序

 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=90ffbdb4-5b89-4bbc-9f90-d42b2419294c
&response_type=code
&redirect_uri=https://localhost:8080
&response_mode=query
&scope=openid api://08b3e812-2141-47af-a00a-75de13d3916d/Files.Read
&state=12345

不需要管理员同意。

enter image description here

更新:(用户同意)

enter image description here

关于azure - 为什么我的应用程序注册设置需要管理员同意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61368997/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com