使用ConfidentialClientApplication保护对MS Graph的多租户访问

时间:2019-12-20 11:04:44

标签: azure microsoft-graph msal microsoft-graph-sdks

我一直在努力寻找如何将多个租户连接到同一个Azure APP来访问图形的方法。我最终使用ConfidentialClientApplication是因为我有一个守护程序服务,该服务不能一直要求进行身份验证,因此租户管理员向我的Azure应用授予一次权限,并且我可以使用MS Graph API访问租户的数据。

我需要帮助来了解以下情况的问题:

考虑一下,我们有2个租户:tenant1,tenant2。两者都授予了我的应用程序权限。但这意味着tenant2可以通过指定诸如https://login.microsoftonline.com/tenant1和电子邮件之类的tenant1权限来访问tenant1的数据。如何安全地克服这种情况,我应该为每个客户使用一个Azure应用程序,还是守护程序应用程序的其他MSAL身份验证流程?完全困惑。

1 个答案:

答案 0 :(得分:1)

如果您的客户可以控制守护程序应用程序使用的权限,则听起来您无法使用对所有客户租户都具有应用程序权限的单个应用程序的方法。 当您有一个多租户应用程序且其后台流程在客户无法控制的基础结构中运行时,可以使用这种方法。

您的应用程序需要与只有您控制的基础架构进行对话,然后使用应用程序权限,或者您需要单独的应用程序。 需要在每个客户的AAD中将应用程序创建为单租户应用程序。 他们要么做,要么做,或者提供一个脚本来做。 然后他们可以将这些凭据输入到您应用的配置中,并开始使用它。