首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java web应用程序身份验证-帐户设计

Java web应用程序身份验证-帐户设计
EN

Stack Overflow用户
提问于 2015-03-25 09:03:22
回答 5查看 1.4K关注 0票数 4

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

有三种不同类型的帐户:

  • shop ,商店帐户将有自己的网站,
  • customer ,客户通过应用程序访问商店/商品(IOS/Android)
  • 管理,管理系统的一切。

我的基本身份验证思想:

肯定会有account / role / permission表,因为管理员和客户都会有相当复杂的用户权限问题,客户也有不同的权限,因为他们的历史行为。

由于Apache Shiro的简单性和分布式会话,我决定使用它。

我的问题是:

(1)应该创建一个单帐户表或3个单独的帐户表。

(2)对3张表的设计有何建议:account / role / permission

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-04-07 16:41:25

要简短:,您不需要角色/权限表 :)

我会先决定你真的需要RBAC安全模型吗?您的应用程序看起来像一个完美的六角架构用例,它有三个独立的前端部分:消费者、商店、管理。然后,我建议为每个前端建立单独的身份验证/授权机制。在这种情况下,您可以灵活地选择最佳工具(OAuth2、OpenID、LDAP什么的),并遵循最不常见机构安全原则。您的应用程序看起来不像在方法级别上需要授权的应用程序,因此您不需要RBAC。

票数 3
EN

Stack Overflow用户

发布于 2015-03-26 15:11:36

我建议您考虑将您的所有用户管理需求委托给风暴路径。使用Stormpaht,您不需要担心这种低级别的问题,您的所有数据都是安全管理和存储的。“风暴路径”规定:

  • 不同SDK的用户管理API : node.js、express、java、rest、python、烧瓶。
  • 现成的托管登录:登录、注册和密码重置。
  • 从现成的ID站点上删除,为您的应用程序提供单点登录。
  • 使用或OAuth2保护的用户API密钥
  • 社交登录: Facebook,Google,LinkedIn,Github
  • 与Shiro和Spring安全的集成
  • 与Active和LDAP的集成

使用风暴路径,您只需要创建群组,它将表示您的roles。在您的组和帐户中,还可以使用灵活的permissions概念创建更细粒度的概念,如自定义数据

如前所述,我们还支持Shiro集成,您可以在使用Stormpath作为身份验证和授权数据提供程序的同时,使用Shiro来建模您的所有安全需求。请看一下我们的风暴路径Shiro插件示例Shiro Web应用程序

免责声明,我是一个积极的风暴路径贡献者。

票数 4
EN

Stack Overflow用户

发布于 2015-03-26 21:49:14

如果您在第一个问题中询问如何为三个非常不同的实体(管理用户、客户用户和店主)设计数据库模式,我建议您不要将它们合并到一个表中,因为它们是不同的概念,可能具有不同的特性。

您回答了自己的问题,因为“易于编程”很少胜过业务规则/逻辑。

您决定使用现有的安全框架,或者使用您自己的安全框架,应该独立于核心业务实体的数据模型。

如果您不想使用像Stormpath这样的托管解决方案,并且还没有解决Shiro问题,请查看OACC,这是一种开放源代码的基于权限的Java安全框架,支持分级安全域、超级用户、权限继承和模拟。

它可能适合您的项目,因为:

  • 您不需要将数据库设计与授权相关的方面弄得杂乱无章。
  • OACC是为多租户应用程序体系结构设计的(比如您的项目的“商店”)。
  • 它允许模拟,这是一个强大的功能,如果您需要支持客户服务代表而不给予他们“管理”特权。

[免责声明:我是http://www.oaccframework.org/的维护人员和联合开发人员]

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29251357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档