【问题标题】:Role-based access control in UMLUML 中基于角色的访问控制
【发布时间】:2018-11-18 20:15:39
【问题描述】:

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

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

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

【问题讨论】:

  • 您可以通过多种方式对此进行建模。你甚至没有提到一个约束。我们应该如何知道访问系统的规则是什么?
  • @qwerty_so 我不想告诉你这个,但是 RBAC 标准化模型。这意味着在不添加任何扩展来设置模型的情况下,实际上或多或少只有一种方式来表示它,总的来说。您的框架会话与 RBAC 模型集成的位置可能存在小的差异。我见过几个系统声称是我们的后盾,但没有一个系统完全实现它。

标签: java security uml rbac


【解决方案1】:

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

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

Flat RBAC,第一级,要求如下

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

我从未在野外看到完整的 RBAC 实施。在之前的工作中,我们最终不得不将第 2 点添加到应用程序中,以使管理员能够进入“支持”模式,以查看帐户资料。

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

Here is the source of this diagram,它的信息比我说的要多。

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

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

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

【讨论】:

  • 嗯,该图“至少”显示了一个粗略的 UML(查看源代码,作者显然在使用 TeX 时遇到了困难;到处都是竖线是什么?)顺便说一句。我说我的例子是a方式,而不是the方式。
  • 进一步:这不是一个标准。这是大学论文。您当然可以将其作为参考,但到目前为止这还不是标准。
  • @qwerty_,所以这是一个标准,但是你是正确的,这不是对标准的引用。我相信这篇博文包含对 NIST 标准的引用。 blog.ansi.org/2018/05/role-based-access-control-rbac-incits-359 是的,这不是我在世界上最伟大的你,但它绝对比我见过的大多数其他东西都要好。我高度怀疑已开发的标准是否使用 UML 进行规范。
  • 你应该用正确的链接修正你的答案然后......
  • @qwerty_so 哎呀,修复它
【解决方案2】:

好吧,仍然有很多很多方法可以对此进行建模。基本上它不是UML,而是设计问题。无论如何,这是一种可能性:

用户有一个Role,在登录期间永久分配。当然,具有管理员权限的用户可以将此角色更改为其他角色。 Role 包含一个分配的 Applications 列表,其中关联类 RoleApplication 可以包含有关角色可以对应用程序执行的操作的属性。

现在您如何控制管理员可以更改权限以及安全系统附带的所有这些漂亮的东西肯定太宽泛了。

【讨论】:

  • 感谢您的回答。我想我现在对我需要如何进行有了更好的了解。
  • @qwerty_so 我进一步更新了我的答案,并删除了那里的直接批评。对这个答案的主要批评是它实际上并没有实现 NIST 1 级 RBAC 要求。
  • @xenoterracide 没有冒犯。我从未打算表明这将实现 RBAC。这只是开始考虑它的一个点。在实践中,您的实现无论如何都会有所不同。 (光是看看很多公司处理密码的方式就让我大吃一惊。所以我真的不想知道他们的访问实现是怎样的。)
  • @qwerty_so hah,是的...正如我所提到的,我从未真正在野外看到过正确的 RBAC 实现,其中大多数是他们称之为 Role的组>。我认为你的例子就是其中之一;再次,没有冒犯。访问控制很难 ™
猜你喜欢
  • 2010-09-11
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 1970-01-01
  • 2022-01-26
  • 2015-12-09
  • 1970-01-01
相关资源
最近更新 更多