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

Azure active directory 防止未经授权的AAD租户登录?,azure-active-directory,Azure Active Directory,有没有办法阻止用户登录他们自己的AAD租户?例如,允许登录到contoso.onmicrosoft.com,但不允许登录fabrikam.onmicrosoft.com 我的客户有一个高度受控的Azure环境,他们在其中运行一些服务器和PaaS/SaaS应用程序。连接到这些服务器的用户正在使用各种Azure服务和一些SaaS(主要关注点是PowerBI)。他们担心用户可能会使用非公司帐户登录(wahid@hotmail.com)然后将敏感数据上传到自己的PowerBI工作区 除了从该租户中删除该

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


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

除了从该租户中删除该用户外,您不能阻止已经在该租户中的用户登录到该AAD租户


如果为一个租户创建/邀请了一个帐户,则用户只需登录到该租户即可


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

是的,您有几个选项

选项1:单租户应用程序 如果您能够在要从中接收用户的租户中创建应用程序,则可以将您的应用程序标记为仅此租户可用(该字段称为
其他租户可用
)。这将通知令牌服务仅授权创建应用的租户中的用户访问

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

在这个场景中,您将需要某种web服务来安全地验证访问令牌()。要检查用户帐户所属的租户,您需要验证
iss
字段。看起来是这样的

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

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

更多帮助 一篇关于令牌验证的优秀博客文章


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

如果一个帐户被创建/邀请给一个租户,用户只需登录到该租户即可。对于您描述的场景,我建议您可以吊销这些用户的产品许可证。如果您未向用户分配产品许可证,则用户无法使用该应用程序,或者无法在“我的应用程序”面板中看到该应用程序。对于其他SaaS/PaaS应用,您可以使用用户分配来允许特定用户访问该应用。在我的场景中,我不拥有“其他”租户,因此无法更改许可或用户权限。我只是想阻止用户登录到不属于我的组织的租户。我可以为大多数服务(如Azure SQL、存储等)这样做,因为它们有一个可以阻止的URL。我似乎找不到Azure广告(例如阻止登录Azure门户或Office 365)的内容。您好,@Wahid。我懂了。由于您没有其他租户,因此您无法更改许可证,也无法决定来宾用户可以使用哪个租户或应用程序。另外,对于来宾用户,他/她无法登录Office 365 portal:-)。谢谢,这更接近我的要求。但我没有特定的定制应用程序,它只是常规的Azure服务(Azure门户、powershell、data lake等)。根据提出的方法,我基本上必须提供Azure API的前端。您能否详细说明您希望验证用户身份的介质?在允许用户登录而不必构建完整前端方面,您可能有一些选择(例如Azure CLI向您发送您在站点上输入的代码,然后输入您的凭据)。老实说,我不想验证他们的身份。我只是不想让他们登录到我无法控制的资源(例如Azure门户),这样他们就可以过滤我的数据。阻止这种情况的正常方法是将属于我的站点列入白名单,我们可以使用Azure SQL(白名单myAzureSQL.database.windows.net)来完成这项工作。如果我把portal.azure.com列入白名单,它允许任何人的azure。如果我将powerbi.com列入白名单,它允许任何人的powerbi。这是一个AAD问题,因为这两个示例(Portal/PowerBI)和其他示例都使用AAD登录。理想情况下,如果AAD登录页面(login.microsoftonline.com包括租户名称,如mytenatxyz.login.microsoftonline.com)包含租户名称,那就太好了。这将使我能够在阻止其他应用程序的同时允许myTenantXYZ。登录url允许您指定要登录的租户的应用程序(例如login.microsoft.com/mytenant.onmicrosoft.com/[…])。棘手的是,最终用户可以修改请求,因此由应用程序(将自身标记为单个租户或通过令牌验证)验证他们是否从允许的租户登录。