防止登录未经授权的AAD租户?

时间:2018-05-01 18:32:19

标签: azure-active-directory

有没有办法阻止用户登录自己的AAD租户?例如,允许登录contoso.onmicrosoft.com但不登录fabrikam.onmicrosoft.com

我的客户拥有一个高度控制的Azure环境,他们在这里运行一些服务器和PaaS / SaaS应用程序。用户连接到那些服务器都使用各种Azure服务和一些SaaS(主要关注的是PowerBI)。他们担心用户可以使用非公司帐户(wahid@hotmail.com)登录,然后将敏感数据上传到他们自己的PowerBI工作区。

3 个答案:

答案 0 :(得分:1)

您无法阻止已经在租户中的用户登录该AAD租户,除非从该租户中删除该用户。

如果一个帐户被创建/邀请给一个租户,则该用户可以登录该租户。

对于您描述的方案,我建议您可以撤消这些用户的产品许可。如果您未向用户分配产品许可证,则用户无法使用该应用程序或无法在“我的应用程序”面板中看到该应用程序。对于其他SaaS / PaaS应用程序(Web App),您可以使用用户分配来允许特定用户访问该应用程序。

答案 1 :(得分:1)

对于其他人:丹尼尔为我回答了这个问题。简而言之,这并不容易,您需要检查租户ID(或名称)的响应正文,然后阻止它。这也会导致糟糕的用户体验,但这就是我们今天所能做的一切。

答案 2 :(得分:0)

是的,你有几个选择。

选项1:单租户应用

如果您能够在租户中创建要接受用户的应用,则可以将您的应用标记为仅对此租户可用(该字段称为availableToOtherTenants)。这将通知令牌服务仅授权创建应用程序的租户中的用户访问。

选项2:具有令牌验证的多租户应用

另一个选项是将您的应用标记为多租户(与上面相同的字段,只需设置为true)并在您的应用中实施逻辑,以验证发出令牌的用户的租户。

在这种情况下,您需要拥有某种可以安全验证访问令牌的Web服务(.NET code sample on this)。要检查用户帐户所属的租户,您需要验证iss字段。它看起来像这样,

"iss": "https://sts.windows.net/7fe81447-da57-4385-becb-6de57f21477e/"

其中GUID表示租户ID。这允许您的Web API具有基于租户ID的允许或拒绝列表。

更多帮助

Here's关于令牌验证的优秀博客文章。

Azure AD Developer Docs

.NET Web API Code Sample