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

时间:2017-08-15 14:25:30

标签: azure single-page-application azure-active-directory multi-tenant

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

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

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

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

这似乎是重复的事情,可能会变成性能问题,我相信。

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

1 个答案:

答案 0 :(得分:1)

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

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