java – JAX-WS,认证和授权 – 如何?
在Web服务中进行身份验证和授权的最佳方式是什么?
我正在开发一套Web服务,需要基于角色的访问控制. >我想一次验证用户,使用用户名和 至今: >阅读 authentication using a database – 但我想要应用程序级验证; >阅读application authentication with jax-ws – 但我不想每次做认证机制; 编辑: 我还有一些问题: >如何知道被调用的Web方法的名称? 编辑2 因为@ ag112答案: 我在使用Glassfish. 我使用WS-Policy和WS-Security对邮件进行加密和签名.使用相互证书身份验证.我想补充这种消息级别的应用程序之间的安全性,用户的认证和授权也在消息级别. 我只是开发服务,我几乎不知道客户端,只是他们可以用不同的语言创建. 在这一点上,我认为最重要的是做我需要做的,以验证和验证用户,我最容易的方式来实现客户端应用程序. 解决方法
@路易斯:这是我的输入.
针对您的问题的精确解决方案取决于您期望的Web服务客户端的类型,您是否可以控制Web服务客户端系统,应用程序服务器等…..但假设您没有对Web服务客户端的任何控制,你只是一个通过HTTP传输的SOAP消息,这里是可能的解决方案. 你当然可以执行会话管理和消息级别或传输级别的认证.这意味着您可以在SOAP消息中拥有会话令牌和身份验证令牌信息,也可以使用标准HTTP会话和HTTP身份验证机制. 当然,如果传输层是HTTP,传输层解决方案要简单得多,行业范围更广泛.对于消息级别,可以使用ws-security等ws规范. 由于您正在寻找基于角色的访问控制,因此我将使用标准的< web-resource-collection>在web.xml中指定您希望在特定HTTP URI的情况下使用哪个角色.您可以使用标准的JAAS登录模块,该模块可以进行身份??验证,并使用角色填充JAAS主题.如果SOAP XML中提供了用户名/密码,则JAAS登录模块还可以搜索/解析SOAP XML以检索这些信息. JAAS / app服务器将自动创建auth令牌并将其存储为cookie,以便每个后续请求不需要再次通过身份验证过程.这就是所有的J2ee标准.你可以在互联网上找到很多帮助.请让我知道您的应用服务器,以便我可以为您提供更多详细信息. 如果您仍然想使用SOAP消息级会话管理,则认证&授权过程,然后为您提供更多详细信息,可以了解有关客户端的更多详细信息. EDIT1: 问题仍然存在:如果在第一次身份验证的SOAP响应中放置唯一会话标识符,您希望客户端解析SOAP响应XML,并确保客户端每次在随后的SOAP请求中向您发送会话标识符. 现在最适合你的情况取决于你的用例.你能告诉我预期的用例流程是什么?另一个系统(Web服务客户端)如何对系统进行多个服务调用?是另一个系统用户驱动/一些后台进程?什么是确切的需要,您只想要第一个服务呼叫通过身份验证过程而不是后续呼叫? PS:Glassfish服务器提供了一种配置消息认证提供程序的方式,可自动启用/禁用消息级认证. EDIT2: 说过,每次传递用户凭据每次似乎都比较容易和直接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |