【发布时间】: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