有没有办法阻止用户登录自己的AAD租户?例如,允许登录contoso.onmicrosoft.com
但不登录fabrikam.onmicrosoft.com
。
我的客户拥有一个高度控制的Azure环境,他们在这里运行一些服务器和PaaS / SaaS应用程序。用户连接到那些服务器都使用各种Azure服务和一些SaaS(主要关注的是PowerBI)。他们担心用户可以使用非公司帐户(wahid@hotmail.com)登录,然后将敏感数据上传到他们自己的PowerBI工作区。
答案 0 :(得分:1)
您无法阻止已经在租户中的用户登录该AAD租户,除非从该租户中删除该用户。
如果一个帐户被创建/邀请给一个租户,则该用户可以登录该租户。
对于您描述的方案,我建议您可以撤消这些用户的产品许可。如果您未向用户分配产品许可证,则用户无法使用该应用程序或无法在“我的应用程序”面板中看到该应用程序。对于其他SaaS / PaaS应用程序(Web App),您可以使用用户分配来允许特定用户访问该应用程序。
答案 1 :(得分:1)
对于其他人:丹尼尔为我回答了这个问题。简而言之,这并不容易,您需要检查租户ID(或名称)的响应正文,然后阻止它。这也会导致糟糕的用户体验,但这就是我们今天所能做的一切。
答案 2 :(得分:0)
是的,你有几个选择。
如果您能够在租户中创建要接受用户的应用,则可以将您的应用标记为仅对此租户可用(该字段称为availableToOtherTenants
)。这将通知令牌服务仅授权创建应用程序的租户中的用户访问。
另一个选项是将您的应用标记为多租户(与上面相同的字段,只需设置为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关于令牌验证的优秀博客文章。