在休息服务器中实现授权--设计

问题描述 投票:0回答:1

我们团队有一个REST服务器和一个使用Jersey开发的Web应用程序。目前我们的应用中只支持使用OpenID[1]的认证。我们正计划引入授权。在我的研究中,我发现基于角色的授权是我们可以实现的一种方式。这种方法是有我们自己的表,比如user、privileges和user_privileges,我们给用户分配所需的权限(一对多的映射)。

我有以下问题。

  • 因为我们有一个Web应用程序和一个REST服务器, 授权应该在REST服务器内部实现,还是在Web应用服务器中实现。

  • 希望了解使用Java的安全框架,如JAAS、Apache Shiro、OACC、Java安全注释[2](@RolesAllowed)的好处,除了代码重用能力、容易实现之外。

  • 如果有建议的话,也希望得到推荐,从上述框架中选择哪个框架(JAAS、Apache Shiro、OACC、Java安全注解)。

谢谢你的建议。

[1] https:/en.wikipedia.orgwikiOpenID。 [2] https:/docs.oracle.comjavaee7tutorialsecurity-javaee002.htm。

java rest authorization
1个回答
0
投票

至于你的问题 "授权应该在REST服务器内部实现,还是在Web应用服务器中实现"。我的建议是两者都不要实现!我的建议是两者都不要实现!相反,在你的REST层所调用的服务中实现安全。换句话说,安全是在你的服务的核心中实现的,并且无论服务是如何被调用的,都会被强制执行。

至于你提到的安全框架,我偏向于OACC。OACC提供了一个完全实现的API,使用创新的设计来与你的应用无缝集成,支持一些数据库后端来持久化安全数据,并且经过了1000多个集成测试。

这是一篇讨论OACC安全模型的好文章。https:/dzone.comarticlesa-different-kind-of-java-security-framework。

(披露:我是创造者总设计师的 OACC 架构)

© www.soinside.com 2019 - 2024. All rights reserved.