首页 > 解决方案 > UML 中基于角色的访问控制

问题描述

我试图弄清楚我需要在 UML 中为基于角色的访问控制系统指定什么。基本上我有一个数据库,只有特定的人才能访问该数据库中的特定功能或信息。我的学术助手告诉我使用基于角色的访问控制系统,并在纸上潦草地写了一些东西。

在此处输入图像描述

在左侧,您可以看到 3 个角色,并在 Model-View-Control 的模型部分中将其连接到数据库。我的问题基本上是:我在 Role 类和角色类中需要哪些函数/变量,以便访问控制系统正常工作,为什么?一般来说,这应该是用Java编写的。

编辑:每个角色都有自己的登录凭据,因此它们将在登录时被识别。通过此登录,他们应该获得其中一个角色,但我不知道如何赋予他们该角色。

标签: javasecurityumlrbac

解决方案


我很久以前就在寻找我通过谷歌找到的一些图表,早在这个问题之前。

RBAC 是一种标准化模型,它实际上并不包含多种表示形式。您可以使用其他安全模型对其进行扩展,并且它是多级的,因此更高级别是可选的。

Flat RBAC,第一级,要求如下

  • 用户通过角色获取权限
  • 多对多用户角色分配
  • 多对多权限角色分配
  • 用户角色分配审查(用户角色映射可以更改,而不是硬编码)
  • 用户可以同时使用多个角色的权限

我从未见过在野外完全实现 RBAC。在之前的工作中,我们最终不得不将第 2 点添加到应用程序中,以使管理员能够进入“支持”模式,以按照他们的意愿查看帐户配置文件。

该图提供了大致完整的 4 级表示。

RBAC UML

这是这张图的来源,它的信息比我说的要多得多。

我认为您将拥有的最大差异(除了命名)是什么对象具有“检查访问权限”以及这些对象和方法的一般命名。

为了进一步阅读这个主题,我建议这些

还有其他文档,包括一些批评,我通常发现仅使用 RBAC 是不够的,因为通常有比“经理可以做 X”更复杂的要求,例如。


推荐阅读