【Java保险技术探索之路系列:Java可扩展安全架构】之十七:JGSS(一):JGSS架构介绍
【Java安全技术探索之路系列:Java可扩展安全架构】之十七:JGSS(一):JGSS架构介绍
作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.****.net/allenwells
github:https://github.com/AllenWell
通用安全服务API(Generic Security Services API, GSS-API)是由因特网工程小组(IETF)开发的一套标准API,以提供支持各种可插人安全机制的通用认证和安全消息接口。GSS-API还允许使用通用接口开发应用认证,从而将用户同底层安全机制隔离开。GSSAPI第2版的格式也是独立于语言的。
Sun公司将Java GSS-API(JGSS)作为J2SE 1.4的一个可选安全包,提供对GSS-API的Java绑定。从
而允许开发这样的应用,即能通过包括Kerberos在内的各种底层认证机制统一地访问安全服务。
JGSS与JSSE和JAAS的比较,JGSSAPI的很多功能与JARS和JSSE相同,尤其在客户端一服务器认证、数据加密和完整性方面。然而,在选择将JGSS用作合适的机制前,必须了解一些显著的区别:
- 对单点登录的支持:JGSS支持将Kerberos作为主要的认证机制,而Kerberos支持单点登录,从而避免了用户进行多次登录。
- 通信:JGSS是基于令牌的API,依赖应用进行通信处理。从而使应用可以选择自己的传输协议来传输JGSS生成的令牌,如TCP套接字、UDP数据报或其他任何传输协议。而JSSE提供的是基于套接字的API,因此应用只能使用TCP套接字进行通信。
- 凭证委托:通过使用Kerberos机制,JGSS允许客户端将其凭证委托给部署于多层环境中的服务器应用。而 JARS也使用Kerberos机制支持类似的委托。
- 加密:JGSS是基于令牌的,并允许根据应用的需求选择加密类型,以便对明文和密文消息进行加密和解密。而其他Java安全API不支持此项功能。