Cyber Security Academy · 课时

RBAC 与 ABAC

访问控制模型

第 2 / 4 课13 个步骤

RBAC 与 ABAC 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。

访问控制模型

访问控制模型定义了如何决定权限。最广泛使用的两种模型是RBAC和ABAC。

选择合适的模型会影响权限的可扩展性和灵活性。

RBAC 基础

基于角色的访问控制(RBAC)将权限授予角色,然后再将用户分配到角色。

用户会继承其角色的全部权限。您可以通过管理角色成员关系来管理访问权限。

RBAC 示例

请考虑 editor 和 viewer 这样的角色:

  • editor:读取和写入文档
  • viewer:仅能读取

将 editor 角色分配给 Alice 后,她会自动获得这两项权限。

role: editor
  permissions: [doc.read, doc.write]
user: alice -> role: editor

RBAC 的优势

RBAC 很受欢迎,因为它:

  • 易于理解和审计。
  • 适合拥有相似需求的大量用户,具备良好的可扩展性。
  • 便于检查(谁拥有哪个角色)。

RBAC 的弱点:角色爆炸

当访问权限取决于许多细粒度条件时,您最终会创建出无穷无尽的角色,例如 editor_finance_emea_temp。

这种角色爆炸使 RBAC 难以大规模管理。

ABAC 基础

基于属性的访问控制(ABAC)使用由策略规则评估的属性来决定访问权限。

属性描述用户、资源、操作和环境。

ABAC 示例

ABAC 策略可以表达丰富的规则,而不需要创建专用角色。

ALLOW read IF user.department == resource.department
  AND user.clearance >= resource.sensitivity
  AND env.time BETWEEN 09:00 AND 18:00

ABAC 的优势

ABAC 提供:

  • 细粒度且能感知上下文的决策。
  • 不会产生角色爆炸;一项策略可以覆盖许多情况。
  • 时间、位置和设备等动态因素。

ABAC 的弱点

ABAC 以简单性换取能力:

  • 策略可能变得复杂且难以审计。
  • 需要干净、可信的属性数据。
  • 难以一眼回答“谁可以访问 X”。

两者结合

许多系统采用混合方式:使用 RBAC 进行粗粒度控制,使用 ABAC 处理细粒度条件。

例如,角色授予基础访问权限,属性规则再根据区域或时间进一步限制权限。

选择模型

经验法则:

  • 当访问权限与岗位职能清晰对应时,使用 RBAC。
  • 当决策取决于上下文或经常变化时,使用 ABAC。
  • 将两者结合起来,兼顾各自的优势。

快速检查

某组织不断创建类似 editor_finance_emea_contractor 的角色,以处理每种组合。哪种模型可以减少这一问题?

总结

您比较了 RBAC 和 ABAC。

  • RBAC:简单、由角色驱动,但容易出现角色爆炸。
  • ABAC:灵活、由属性驱动,但审计更加复杂。
  • 混合方式可以结合两者的优势。

接下来,我们将探讨单点登录与联合身份认证。

免费开始

用 AI 导师学习 Cyber Security Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
76
课程
303

常见问题解答

「RBAC 与 ABAC」课时是免费的吗?

是的 — 「RBAC 与 ABAC」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。

「RBAC 与 ABAC」这节课中我会学到什么?

访问控制模型 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cyber Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「RBAC 与 ABAC」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cyber Security Academy 课中编写并运行代码吗?

能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. IAM 基础
  2. RBAC 与 ABAC
  3. SSO 与联合身份
  4. 最小权限
← 返回 Cyber Security Academy