2015-03-18 298 views
5

在Azure AD上使用多租户应用程序时,是否有限制某些租户的方法?Azure Active Directory |多租户应用程序

也许我误解了整个事情,但我意识到另一个租户的用户可以在同意后登录到我的应用程序,我无法找到一种方法来限制登录到我信任的一组租户。

回答

4

我们目前没有映射到多租户应用程序的租户允许列表的应用程序配置属性。

您可以做的是将此功能构建到应用程序中 - auth/JWT令牌包含作为声明的tenantID(tid)。您只能授权您的应用允许列表中的已知租户访问。

请让我们知道这是否是您希望通过应用程序配置页面进行配置的功能(如在azure管理门户中)?此外,在这里了解您的场景也会很棒。

希望这有助于

+1

嗨丹,谢谢你的回答。我可以对我的代码执行验证,但用户仍然可以在我的租户上注册为我的应用程序的用户。我测试了它。有什么方法可以避免用户同意我的代码?我将此示例作为参考:https://github.com/AzureADSamples/WebApp-MultiTenant-OpenIdConnect-DotNet。在应用程序配置页面 – 2015-03-19 17:59:15

+0

上有一个选项是很好的。这是正确的。如果没有新功能,我们无法阻止用户同意登录您的多租户应用。控制访问权限将需要在您的应用中授权用户的一部分。我会确保在这里添加一个功能请求Rodrigo。感谢您的反馈。 – 2015-03-20 06:10:45

+0

太棒了!谢谢丹! – 2015-03-20 11:55:03

2

虽然这个功能是不是今天在Azure中的广告的,你可以,如果你在混合添加Auth0实现这个场景。 Auth0为您的应用程序支持multi-tenant Azure AD applications as a connection,并支持using the rules engine,您可以编写规则来限制对基于Azure AD租户的特定应用程序的访问。

下面是一个例子,说明这样的规则(它运行在Auth0认证管道,用户在Azure的AD和用户之前验证才能访问你的应用程序后):

function (user, context, callback) { 
    if(context.clientName !== 'NameOfTheAppWithWhiteList'){ 

     var whitelist = [ 'tenantId1', 'tenantId2' ]; //authorized Azure AD tenants. 
     var userHasAccess = whitelist.some(
     function (tenantId) { 
      return tenantId === user.tenantid; 
     }); 

     if (!userHasAccess) { 
     return callback(new UnauthorizedError('Access denied.')); 
     } 
    } 

    callback(null, user, context); 
} 

免责声明:我为Auth0工作。

相关问题