.NET Core Azure AD应用程序注册-允许通过组访问

时间:2020-09-01 21:14:13

标签: azure .net-core azure-active-directory rbac azure-rbac

背景

我有一个.NET Core 3.1网站通过Azure Web Apps for Containers在docker中部署。

该应用仅在我们组织的Azure AD中注册,并且必须添加用户才能授予访问权限。

该站点通过基于个人的访问现在可以正常工作了一段时间。该应用使用默认访问权限。如果某人完全可以访问该站点,那么他们就可以访问该站点中的所有内容。

我们的Azure AD租户是高级P2租户。

目标

我想使用安全组来访问应用程序,而不是在Azure AD中向应用程序添加个人。

问题

  • 我要在组织的Azure AD中进行应用注册
  • 我选择Users and Groups菜单
  • 我添加包含我要授权的个人的组,其角色为Default Access(唯一可用的角色)
  • 我删除了个人(都是小组成员,这是我们首选的访问管理)

预期行为

由于该组已获得授权并且是该组的成员,因此仍允许用户访问该网站。

实际行为

除非我也将他们添加为个人,否则拒绝用户访问。

在日志中,我看到以下内容:

消息包含错误:'access_denied',错误描述:'AADSTS50105:登录用户'{EmailHidden}'未分配给应用程序'{Redacted GUID}'(Redacted App Name)的角色。 / p>

但是,在这种情况下,所有个人都是已注册组的一部分,并且该组具有与授予个人相同的Default Access角色。

我尝试过的事情:

问题

如何从Azure AD企业应用程序中的个人用户访问权限转换为基于组的访问权限?

更新:验证码

每个请求,提供我用于设置身份验证的代码。

IIRC,这只是Azure的现成.NET Core设置。在Startup.cs

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
    .AddAzureAD(options =>
    {
        Configuration.Bind("AzureAd", options);
    });

AzureAd配置部分如下:

  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "(Redacted)",
    "TenantId": "(Redacted Guid)",
    "ClientId": "(Redacted Guid)",
    "CallbackPath": "/signin-oidc"
  }

1 个答案:

答案 0 :(得分:1)

用户是直接分配给该应用程序的组的成员吗?

它们必须如此,因为AAD应用程序不支持https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/groups-saasapps的嵌套组

重要

仅在启动Azure AD Premium试用版或购买Azure AD Premium许可计划后才能使用此功能。 仅安全组支持基于组的分配。 当前,基于嵌套的组成员资格不支持基于组的应用程序分配。