基于组的授权与基于角色的授权之间的天差广告差异

时间:2020-01-12 14:47:50

标签: .net azure azure-active-directory microsoft-graph-api azure-rbac

您好,最近我开始制作天蓝色广告。我已经开始为.net核心api进行授权工作。我对天蓝色的广告角色和组有以下理解。

Azure AD组。 只分组用户属于同一业务。 一个用户可以属于多个组。 无论何时添加新用户,我们都可以将用户关联到不同的组。

.net核心基于Azure AD组的授权 我们将在.net核心应用程序上使用API​​。因此,将天蓝色广告组和我的.net核心应用程序整合在一起,我们便可以拥有基于策略的授权。例如,某些小组只能访问很少的api。 例如,

services.AddAuthorization(options =>
            {   
                options.AddPolicy("GroupsCheck", policy =>
                {
                    policy.AuthenticationSchemes.Add(JwtBearerDefaults.AuthenticationScheme);
                    policy.RequireAuthenticatedUser();
                    policy.Requirements.Add(new GroupsCheckRequirement("group id"));
                });
            });

因此,只要我在控制器顶部具有[Authorize(Policy =“ GroupsCheck”)],只有当用户属于对应的组ID时,他才能访问这些api。

Azure AD角色 可以将Azure广告角色分配给上述组。您角色用于授予对Azure广告服务的访问权限。例如,一个角色可以访问虚拟机,而其他角色可以访问网络事物。因此,每当我们将角色应用于组时,该组中的相应用户将获得所述权限。

这是我的理解。如果我的理解有误,请纠正我。

现在我的困惑从这里开始。

组主要做两件事。首先是我们可以在.net应用程序中进行授权,其次是可以使用组将用户分组在一起,并且可以分配角色。但令我困惑的是.net核心应用程序中基于角色的授权。天生的RBAC是对不同用户/组的细粒度访问。 .net核心应用程序中的RBAC与azure之间的关系是什么。

管理员同意

例如,另一件事是我具有天蓝色广告用户角色,并且创建了.net核心应用并在天蓝色广告中注册。现在,我的应用程序需要访问Microsoft图形。因此,要让Microsoft图访问我的应用程序租户管理员,必须征得同意。例如,要读取租户应用程序中的所有组,应调用microsoft graph。这是我对管理员同意的理解。

有人可以帮助我正确理解这些内容吗?任何帮助,将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

.net核心应用程序中的RBAC与azure之间有什么关系?

Azure AD角色和应用程序角色未链接在一起。有多种方法可以这样做(请参阅here),但是这些方法是完全独立的。 Azure AD角色更多地用于控制对Azure资源的访问,而实际上并不适用于特定于应用程序的角色(即,在学校应用程序中,学生无法访问整个班级的成绩)。

因此,要授予Microsoft图访问我的应用程序租户管理员的权限,必须征得同意。

是真的。 Microsoft Graph基本上提供了一个API,可以访问目录中发生的所有事情。自然,由于存在敏感信息,因此管理员需要获得许可。