我们有“客户”的案子。每个客户端都是不同的Azure租户,但是我们将他们的租户id保存在数据库中。因此,我们有一个有角度的应用程序,我们希望在所有客户端上有一个下拉列表,并且基于选定的客户端来查询他们的租户用户,这样我们就可以将他添加到我们的数据库中,并给他们权限和其他所有应用程序的东西。根据我的解读这是无法实现的,

因为这个许可申请将使用像3-4个人,他们是我们的租户的一部分。
我们有办法做到这一点吗?
发布于 2019-03-21 19:11:32
您需要使用应用程序权限并使用客户凭证授权进行身份验证。然后,您需要在调用/v1.0/users之前从每个租户检索一个令牌。
请注意,这将需要从您需要查询的每个租户获得Admin同意。
罗希特在下面的评论是一个很好的观点。如果您的应用程序是SPA,这意味着授权完全通过Javascript在浏览器中进行,那么您实际上只能使用OAuth的隐式格兰特。
要使用客户凭证或授权码授权,您需要某种后端API来处理身份验证和对经过身份验证的API的调用。我认为,无论如何,您都应该这样做,如果没有其他原因,强迫用户每小时重新验证一次并不是一种很好的用户体验。
如果不介意要求租户中的每个用户进行身份验证,则可以使用授权代码授予。这是一个更复杂的设置,因为它要求您为每个用户跟踪单独的Refresh令牌。后端需要检索刷新令牌,将其交换为一组新令牌(access_token和refresh_token),存储新的刷新令牌,然后使用新的访问令牌调用API。
由于令牌和用户之间存在1:1的关系,所以在比例上,您将看到很多令牌。您还需要大量维护工作流来处理可能出现的问题(刷新令牌失败、新的范围需求等)。
它真的可以归结为你的应用程序和租户之间关系的深度。如果您正在为整个组织提供安全性和分析,那么请求全局Mail.Read当然是合理的。如果您只是为组织的一部分提供服务,那么很难让it在如此广泛的权限范围内注册。
https://stackoverflow.com/questions/55280839
复制相似问题