基于SOAP的Web服务中的身份验证和角色(Java)

3

请指导我理解以下内容,以及我应该使用哪种技术来进行最佳实现:

  1. 我们有多少种授权/安全性类型,哪一种是最好的。
  2. 如何实现基于角色的安全性。
  3. 同样适用于Restful服务吗。

1
你是指方法(例如基本身份验证)还是服务器端安全框架(例如Spring Security)? - Gunslinger
@gunslinger 我不确定哪一个是好的 :) 请指导一下。您分享的任何内容都将不胜感激。谢谢 - Navdeep Singh
1个回答

1
第一个问题可以有两种解释。首先,您要求一种身份验证方法,即客户端和服务器之间的协议。以下是两种:
  • BASIC AUTH-客户端在请求中以明文形式发送用户名和密码。如果您正在创建内部服务(在公司网络内)或具有加密通道(HTTPS),则可以正常工作。
  • KERBEROS-在Windows世界中,这很好用,并且一切都受到Active Directory的控制。但是,如果您尝试将其带入Java,则会遇到噩梦。
其次,您可能正在寻找一个处理安全性的Java框架。例如,这可以是Spring Security。 Spring Security将自己定位在您的服务前面的过滤器链中。如果请求(例如使用BASIC_AUTH)被允许通过,则会通过,否则不会。 Spring Security可以配置为以许多方式查找用户,包括数据库,您自己的代码,LDAP(和Active Directory)。
第二个问题。 Spring Security很好地处理角色。我总是让我的Intranet应用程序依赖于我的应用程序通过LDAP从AD获取的角色。很容易控制用户需要访问功能的角色。就像这样:
@Secured("ROLE_ADMIN")

第三个问题。这取决于您的RESTful服务框架,但很可能是一样的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接