我在做一个web项目,后端是 Java & Mysql ,客户端包括 web(html5)app(IOS/Android) ,我对系统的帐户设计有一些疑问。

有3种不同类型的帐户:

  • 店铺 ,店铺账号会有自己的网站,
  • 客户 ,客户通过应用程序(IOS/Android)访问商店/商品,
  • Admin ,管理系统的一切。

  • 我的基本认证思路:

    肯定会有 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/

    10-11 06:24
    查看更多