【问题标题】:Bypassing role based AAD access in Azure?在 Azure 中绕过基于角色的 AAD 访问?
【发布时间】:2018-01-16 17:07:59
【问题描述】:

我们在 Azure 中托管了一个多租户 ASP.NET MVC 应用程序 *.foo.com。我们也为此提供了设置许可。这是我想要实现的目标:

  1. 允许来自外部租户的用户登录,只要他们被分配了我们定义的角色。
  2. 允许“foo”的所有员工登录,而不考虑分配的角色,因为我们不想为每个人分配一个角色。

有谁知道使用单个广告应用程序是否可以满足上述要求? 我能想到的唯一其他选择是拥有 2 个 aad 应用,其中第一个将是面向外部用户和基于角色的多租户应用,而第二个将是面向内部用户的单租户应用。

感谢任何帮助!

谢谢

【问题讨论】:

    标签: azure azure-active-directory rbac


    【解决方案1】:

    您可以使用一个多租户应用程序来满足您的两个要求。

    要求 1:在来自不同租户的用户同意应用程序后,在用户的租户中创建称为服务主体的应用程序表示,您将在 Enterprise applications 下找到已配置的应用程序。然后管理员可以为外部租户中的用户分配角色: 单击Users 选项卡。选择任何用户并将用户分配给应用程序角色。

    要求 2:如果您将 User assignment required? 设置为 false ,则当前租户中的任何人都可以默认访问该应用程序。您可以在Enterprise applications-->您的应用程序-->Properties 中找到设置。

    【讨论】:

    • 不幸的是,要求 2 中的说明对我不起作用。我已经将所需的用户分配设置为 false。但是当我运行应用程序时,我收到以下错误:'AADSTS50105:登录的用户没有分配给应用程序的角色。有趣的是,如果我从另一个租户登录,该应用程序运行良好。是否需要“用户分配”?为内部和外部租户工作?
    • 不,内部和外部租户的应用程序有自己的设置(独立设置)。管理员应该在他的租户中设置该应用程序的User assignment required。所以你可以将User assignment required设置为false,其他租户的管理员根据需求设置值。
    • 嗯。那么这是否意味着,如果外部租户的管理员将“需要用户分配”设置为 false,这些租户的所有员工都可以登录到我的应用程序?有没有办法阻止没有任何角色集的其他租户的用户?
    • 如果应用注册在租户 A 中,只有租户 A 中的用户可以访问租户 A 中的资源,用户不能访问租户 B 中的资源。如果外部租户的管理员将 'User assignment required' 设置为 false ,则在外部租户中,这些租户中的用户可以访问其租户中的应用程序。
    • 例如,一个多租户的应用程序有权限 users.read ,在当前租户中,在同意后,用户可以登录该应用程序并获取当前租户的用户信息。在租户 B 中,经过同意后,应用程序(服务原理)在租户 B 中注册,租户 B 中的用户可以登录应用程序并获取租户 B 的用户信息。但是用户无法获取租户 A 中的用户信息。每个租户的管理员需要根据需要设置'User assignment required(如果我所有的租户用户都可以访问应用程序并获取我的租户的资源?)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 1970-01-01
    • 2018-02-21
    • 1970-01-01
    • 2017-07-28
    • 2017-01-01
    • 2010-09-11
    相关资源
    最近更新 更多