我已经工作了一段时间,试图找出如何将多个租户连接到同一个 Azure APP 来访问图形。我最终使用了 ConfidentialClientApplication ,因为我有一个守护进程服务,它不能一直要求身份验证,因此租户管理员向我的 Azure 应用程序授予一次权限,我就可以使用 MS Graph API 访问租户的数据.
我需要帮助了解以下场景出了什么问题:
假设我们有 2 个租户:租户 1、租户 2。两者都授予了我的应用程序的权限。但这意味着租户2可以通过指定租户1的权限(例如https://login.microsoftonline.com/tenant1
和电子邮件)来访问租户1的数据。如何从安全角度克服这种情况,我是否应该为每个客户使用一个 azure 应用程序,或者可能是守护程序应用程序的其他 MSAL 身份验证流程?完全困惑。
最佳答案
如果您的客户可以控制您的守护程序应用程序使用的权限,那么听起来您无法使用对所有客户租户具有应用程序权限的单个应用程序的方法。 当您的 Multi-Tenancy 应用程序的后台进程在客户无法控制的基础架构中运行时,可以使用此方法。
您的应用程序需要与只有您控制的基础设施通信,然后使用应用程序权限,或者您需要单独的应用程序。 需要在每个客户的 AAD 中将应用程序创建为单租户应用程序。 要么他们做,你做,或者你提供一个脚本来做这件事。 然后他们可以将这些凭据输入到您应用的配置中并开始使用它。
关于azure - 使用 ConfidentialClientApplication 保护对 MS Graph 的 Multi-Tenancy 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59424199/