【问题标题】:azure ad difference between group based and role based authorization基于组和基于角色的授权之间的天蓝色广告差异
【发布时间】:2020-04-29 11:27:58
【问题描述】:

您好,最近我开始研究 azure ad。我已经开始为我的 .net 核心 API 进行授权。我对 azure 广告角色和组有以下理解。

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

.net core 的基于 Azure AD 组的授权 我们将在我们的 .net 核心应用程序上安装 api。因此,将上面的 azure 广告组和我的 .net 核心应用程序结合在一起,我们可以拥有基于 plociy 的授权。例如,某些组可以访问的 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 广告服务的访问权限。例如,一个角色可以访问虚拟机,而其他角色可以访问网络事物。因此,每当我们将角色应用于组时,该组中的相应用户将获得所述权限。

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

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

Groups 主要做两件事。第一个是我们可以在我们的 .net 应用程序中进行授权,接下来是我们可以使用组将用户分组在一起,我们可以分配角色。但令我困惑的是 .net 核心应用程序中基于角色的授权。 Azure 中的 RBAC 是对不同用户/组的细粒度访问。我的 .net 核心应用程序中的 RBAC 和 azure 之间有什么关系。

管理员同意

另一件事是,例如我有 azure ad 用户角色,我创建了 .net 核心应用程序并在 azure ad 中注册。现在我的应用程序需要访问 microsoft graph。因此,要让 microsoft graph 访问我的应用程序租户管理员必须给予同意。例如,要读取租户应用程序中的所有组,应调用 microsoft graph。这是我对管理员同意的理解。

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

【问题讨论】:

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


    【解决方案1】:

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

    Azure AD 角色和应用程序角色未链接在一起。有很多方法可以做到这一点(参见here),但它们是完全分开的。 Azure AD 角色更多地用于控制对 Azure 资源的访问,并不真正适用于特定于应用程序的角色(即在学校应用程序中,学生无法访问整个班级的成绩)。

    因此,要让 Microsoft 图形访问我的应用租户管理员必须给予同意。

    这是真的。 Microsoft Graph 基本上提供了一个 API 来访问目录中发生的一切。当然,由于存在敏感信息,因此需要管理员的许可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-01
      • 2017-12-14
      • 2017-04-12
      • 2018-07-21
      • 2020-06-22
      • 1970-01-01
      • 2018-04-17
      相关资源
      最近更新 更多