java - UML 中基于角色的访问控制
问题描述
我试图弄清楚我需要在 UML 中为基于角色的访问控制系统指定什么。基本上我有一个数据库,只有特定的人才能访问该数据库中的特定功能或信息。我的学术助手告诉我使用基于角色的访问控制系统,并在纸上潦草地写了一些东西。
在左侧,您可以看到 3 个角色,并在 Model-View-Control 的模型部分中将其连接到数据库。我的问题基本上是:我在 Role 类和角色类中需要哪些函数/变量,以便访问控制系统正常工作,为什么?一般来说,这应该是用Java编写的。
编辑:每个角色都有自己的登录凭据,因此它们将在登录时被识别。通过此登录,他们应该获得其中一个角色,但我不知道如何赋予他们该角色。
解决方案
我很久以前就在寻找我通过谷歌找到的一些图表,早在这个问题之前。
RBAC 是一种标准化模型,它实际上并不包含多种表示形式。您可以使用其他安全模型对其进行扩展,并且它是多级的,因此更高级别是可选的。
Flat RBAC,第一级,要求如下
- 用户通过角色获取权限
- 多对多用户角色分配
- 多对多权限角色分配
- 用户角色分配审查(用户角色映射可以更改,而不是硬编码)
- 用户可以同时使用多个角色的权限
我从未见过在野外完全实现 RBAC。在之前的工作中,我们最终不得不将第 2 点添加到应用程序中,以使管理员能够进入“支持”模式,以按照他们的意愿查看帐户配置文件。
该图提供了大致完整的 4 级表示。
这是这张图的来源,它的信息比我说的要多得多。
我认为您将拥有的最大差异(除了命名)是什么对象具有“检查访问权限”以及这些对象和方法的一般命名。
为了进一步阅读这个主题,我建议这些
还有其他文档,包括一些批评,我通常发现仅使用 RBAC 是不够的,因为通常有比“经理可以做 X”更复杂的要求,例如。
推荐阅读
- c++ - 如何设计类继承
- c - 如何将字符串转换为 long int?
- java - Spring Boot + Elastic Search:Java RestHighLevelClient 拒绝连接
- algorithm - 如何计算二维网格中的所有可能路径?
- java - @RabbitListener(queues = "MyQueue") 在 Spring 项目中不起作用?
- java - 休眠多对多映射,更新多个父母中的同一个孩子
- javascript - 如何在官方 react-native Modal 上添加背景可点击覆盖?
- javascript - 为什么 String.replace() 不能区分 null 和“null”?
- javascript - 使用基于复选框检查和取消选中的javascript显示隐藏td
- java - 在 Junit 中可以安排测试套件吗?