我在做一个web项目,后端是 Java
& Mysql
,客户端包括 web(html5)
和 app(IOS/Android)
,我对系统的帐户设计有一些疑问。
有3种不同类型的帐户:
我的基本认证思路:
肯定会有
account
/role
/permission
表,因为 admin 和 customer 都会有相当复杂的用户权限问题,由于他们的历史行为,客户也有不同的权限。由于其简单性和分布式 session ,我决定使用
Apache Shiro
。我的问题是:
(1) 我应该创建单个帐户表还是 3 个单独的帐户表。
(2) 关于设计 3 个表的任何建议:
account
/role
/permission
? 最佳答案
简而言之: 你不需要角色/权限表 :)
我会首先决定你真的需要 RBAC 安全模型吗?您的应用程序看起来像是六边形架构的完美用例,具有 3 个独立的独立前端部分:消费者、商店、管理员。然后我建议为每个前端构建单独的身份验证/授权机制。在这种情况下,您可以灵活地选择最佳工具(OAuth2、OpenID、LDAP 等)并遵循 least common mechanism 安全原则。您的应用程序看起来不像需要在方法级别上授权的应用程序,因此您不需要 RBAC。
关于Java Web 应用程序身份验证 - 帐户设计,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29251357/