我有一个.NET Core 3.1网站通过Azure Web Apps for Containers在docker中部署。
该应用仅在我们组织的Azure AD中注册,并且必须添加用户才能授予访问权限。
该站点通过基于个人的访问现在可以正常工作了一段时间。该应用使用默认访问权限。如果某人完全可以访问该站点,那么他们就可以访问该站点中的所有内容。
我们的Azure AD租户是高级P2租户。
我想使用安全组来访问应用程序,而不是在Azure AD中向应用程序添加个人。
Users and Groups
菜单Default Access
(唯一可用的角色)由于该组已获得授权并且是该组的成员,因此仍允许用户访问该网站。
除非我也将他们添加为个人,否则拒绝用户访问。
在日志中,我看到以下内容:
消息包含错误:'access_denied',错误描述:'AADSTS50105:登录用户'{EmailHidden}'未分配给应用程序'
{Redacted GUID}
'(Redacted App Name
)的角色。 / p>
但是,在这种情况下,所有个人都是已注册组的一部分,并且该组具有与授予个人相同的Default Access
角色。
groupMembershipClaims
设置为SecurityGroup
如何从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"
}
答案 0 :(得分:1)
用户是直接分配给该应用程序的组的成员吗?
它们必须如此,因为AAD应用程序不支持https://docs.microsoft.com/en-us/azure/active-directory/users-groups-roles/groups-saasapps的嵌套组
重要
仅在启动Azure AD Premium试用版或购买Azure AD Premium许可计划后才能使用此功能。 仅安全组支持基于组的分配。 当前,基于嵌套的组成员资格不支持基于组的应用程序分配。