Spnego官网:http://spnego.sourceforge.net/index.html
Spnego Jar下载路径:https://zh.osdn.net/projects/sfnet_spnego/
相关术语:
AD = Active Directory (AD) = LDAP服务器+LDAP应用。
Active Directory中文翻译为活动目录,这个概念不需要太过深入纠结,简单的理解它:Active Directory(活动目录)是微软Windows Server中,负责架构中大型网路环境的集中式目录管理服务(Directory Services),Windows 2000 Server开始内建于Windows Server产品中,它处理了在组织中的网路物件,物件可以是计算机,用户,群组,组织单元(OU)等等,只要是在Active Directory结构定义档(schema)中定义的物件,就可以储存在Active Directory资料档中,并利用Active Directory Service Interface来存取。
KDC = Key Distribution Center密钥分发中心知道所有的密码,因为KDC存储所有的密码。
具有 Active Directory 域和相关联的 Kerberos 密钥分发中心 (KDC) 的 Microsoft Windows Server。
Simple and Protected GSSAPI Negotiation Mechanism (SPNEGO)
即简单且受保护的GSSAPI协商机制,是客户端-服务器软件用于协商安全技术选择的GSSAPI过程。当客户端想要向服务器认证身份,但是客户端和服务器都不知道对方支持什么认证协议。这时需要使用SPNEGO来选择双方都支持的GSSAPI ,以便接下来的认证过程以及后续安全信息传输的正常进行
Spnego模式是一种由微软提出的使用GSS-API接口的认证模式,它扩展了Kerberos协议,在了解Spnego协议之前必须先了解Kerberos协议,Kerberos协议主要解决身份认证及通信密钥协商问题,它大致的工作流程如下:
①客户端根据自己用户名向密钥分发中心KDC的身份认证服务AS请求TGS票证。
②AS生成一个TGS票证、查询对应用户的密码,然后通过用户密码将TGS票证加密,响应给客户端。
③客户端通过用户密码解密TGS票证,如果密码正确就能获取到TGS票证,然后用TGS票证去票证授予服务TGS请求服务票证。
④TGS将服务票证响应给客户端。
⑤客户端使用服务票证去访问某服务,服务验证服务票据是否合法。
⑥验证通过,开始通信。
在了解了Kerberos协议后,我们再来看看Spnego的认证过程是怎样的。由于spnego扩展自ker