【问题标题】:Azure Active Directory | Multi-tenant ApplicationAzure 活动目录 |多租户应用
【发布时间】:2015-03-18 20:40:13
【问题描述】:

在 Azure AD 上使用多租户应用程序时,是否可以限制某些租户?

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

【问题讨论】:

    标签: azure azure-active-directory


    【解决方案1】:

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

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

    如果您希望能够通过应用程序配置页面(例如在 Azure 管理门户中)配置此功能,请告诉我们?在这里了解您的情况也很棒。

    希望这会有所帮助,

    【讨论】:

    • 嗨,丹,感谢您的回答。我可以对我的代码执行该验证,但用户仍然可以在我的租户上注册为我的应用程序的用户。我测试了它。有什么办法可以避免用户同意我的代码?我将此样本作为参考:github.com/AzureADSamples/…。在应用程序配置页面上有一个选项会很棒
    • 没错。如果没有新功能,我们无法阻止用户同意登录您的多租户应用程序。作为在您的应用中授权用户的一部分,需要控制访问。我会确保在这里 Rodrigo 添加一个功能请求。感谢您的反馈。
    • @DanKershaw-MSFT 您好,此功能是否已实施或有任何相关计划?
    【解决方案2】:

    虽然目前 Azure AD 中不提供此功能,但如果在组合中添加 Auth0,则可以实现此方案。 Auth0 支持您的应用程序 multi-tenant Azure AD applications as a connectionusing the rules engine 您可以编写规则来限制对基于 Azure AD 租户的特定应用程序的访问。

    以下是此类规则的示例(在用户在 Azure AD 中进行身份验证之后,在用户可以访问您的应用程序之前,在 Auth0 身份验证管道中运行):

    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 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 2015-08-17
      相关资源
      最近更新 更多