azure - 使用 ConfidentialClientApplication 保护对 MS Graph 的 Multi-Tenancy 访问

标签 azure microsoft-graph-api azure-ad-msal microsoft-graph-sdks

我已经工作了一段时间,试图找出如何将多个租户连接到同一个 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/

相关文章:

azure - Azure Functions 可以部署到 IIS 吗?

java - 如何从代理服务器后面的 Java 应用程序访问 Microsoft Graph Java API?

javascript - 如何使用 Javascript 在 SPFX 或 Sharepoint 页面中使用 client_id 和 client_secret 在没有任何用户的情况下从 Azure AD 应用程序读取访问 token ?

azure-active-directory - 访问 token 版本错误(预期为 V2,收到了 V1)

Azure Multi-Tenancy 应用程序未获取具有新定义范围的 token

javascript - CosmosDB 资源未定义

azure-active-directory - 如何设置LastPasswordChangeTimestamp?

node.js - MSAL Node 服务和合作伙伴中心 API

azure - AADSTS9002325 : Proof Key for Code Exchange is required for cross-origin authorization code redemption - Published on Azure

c# - Azure 和 SignalR : System.Net.Sockets.SocketException:尝试以访问权限禁止的方式访问套接字