如何使用Azure AD身份验证限制多租户应用程序中的租户

Art*_*zzo 6 azure multi-tenant single-page-application azure-active-directory

我目前正在开发一个多租户Angular SPA应用程序,它连接到后端的多个webAPI,并使用AzureAD身份验证,其中每个AD代表一个租户.

有关多租户的Azure文档指向一个名为Tailpsin.Surveys的示例应用程序,我可以在执行页面上的步骤后运行该应用程序.该应用程序与我的方案不同,因为它是WebApp无SPA.

在此webApp中,在OpenId middlreware设置期间,OpenIdConnectEvents传递了一个实现.该实现覆盖TokenValidated方法并阻止之前未通过注册的租户.

这就是我在我的应用程序中尝试实现的目标,但这是否意味着每个WebAPI都应该始终检查颁发者对令牌的声明以验证租户?

我认为,这似乎是重复的事情,可能会变成性能问题.

Azure中是否有任何配置或其他一些限制对一组已定义租户的应用程序访问的方法?

Sha*_*izi 2

据我所知,Azure Active Directory 中没有此类设置。“租赁”的选项是多租户或单租户。多租户意味着从技术上讲,所有租户都可以获得您的服务的访问令牌。

对于您的具体场景,我相信您希望您的服务保留允许调用您的 API 的租户白名单,并检查令牌是否具有正确issuertid声明。您提到您认为此检查可能是性能问题,但您已经检查了每个令牌,确保声明aud正确,并且该令牌由 Azure AD 签名,并检查令牌中的scope/声明是否有权限,因此检查role额外的索赔不应该真正增加显着的开销。