认证模式之Spnego模式
2016-04-15 18:19
856 查看
Spnego模式是一种由微软提出的使用GSS-API接口的认证模式,它扩展了Kerberos协议,在了解Spnego协议之前必须先了解Kerberos协议,Kerberos协议主要解决身份认证及通信密钥协商问题,它大致的工作流程如下:
①客户端根据自己用户名向密钥分发中心KDC的身份认证服务AS请求TGS票证。
②AS生成一个TGS票证、查询对应用户的密码,然后通过用户密码将TGS票证加密,响应给客户端。
③客户端通过用户密码解密TGS票证,如果密码正确就能获取到TGS票证,然后用TGS票证去票证授予服务TGS请求服务票证。
④TGS将服务票证响应给客户端。
⑤客户端使用服务票证去访问某服务,服务验证服务票据是否合法。
⑥验证通过,开始通信。
在了解了Kerberos协议后,我们再来看看Spnego的认证过程是怎样的。由于spnego扩展自kerberos协议,认证的核心流程一样,只是在浏览器与web服务器之间的http通信过程中嵌入认证流程。如下图:
①客户端浏览器向web服务器发送http请求。
②服务器返回401状态码,响应头部加上 WWW-Authenticate:Negotiate。
③用户通过浏览器输入用户名向AS请求TGS票证。
④AS生成TGS票证,然后查询用户密码并用此密码加密TGS票证,返回浏览器。
⑤浏览器使用用户密码解密出TGS票证,并向TGS服务发起请求。
⑥TGS服务生成服务票证响应给浏览器。
⑦浏览器将服务票证封装到SPNEGO token中,并发送给web服务器。
⑧服务器解密出用户名及服务票证,将票证发往TGS服务验证。
⑨通过验证,开始通信。
①客户端根据自己用户名向密钥分发中心KDC的身份认证服务AS请求TGS票证。
②AS生成一个TGS票证、查询对应用户的密码,然后通过用户密码将TGS票证加密,响应给客户端。
③客户端通过用户密码解密TGS票证,如果密码正确就能获取到TGS票证,然后用TGS票证去票证授予服务TGS请求服务票证。
④TGS将服务票证响应给客户端。
⑤客户端使用服务票证去访问某服务,服务验证服务票据是否合法。
⑥验证通过,开始通信。
在了解了Kerberos协议后,我们再来看看Spnego的认证过程是怎样的。由于spnego扩展自kerberos协议,认证的核心流程一样,只是在浏览器与web服务器之间的http通信过程中嵌入认证流程。如下图:
①客户端浏览器向web服务器发送http请求。
②服务器返回401状态码,响应头部加上 WWW-Authenticate:Negotiate。
③用户通过浏览器输入用户名向AS请求TGS票证。
④AS生成TGS票证,然后查询用户密码并用此密码加密TGS票证,返回浏览器。
⑤浏览器使用用户密码解密出TGS票证,并向TGS服务发起请求。
⑥TGS服务生成服务票证响应给浏览器。
⑦浏览器将服务票证封装到SPNEGO token中,并发送给web服务器。
⑧服务器解密出用户名及服务票证,将票证发往TGS服务验证。
⑨通过验证,开始通信。
相关文章推荐
- Beego走起(二) 路由的简单设置
- golang优秀实用开源项目收集
- Google Play服务中的条码扫描识别
- Beego走起(一) 初步认识
- BZOJ4281: [ONTAK2015]Związek Harcerstwa Bajtockiego
- beego上传文件
- 堆排序算法及go语言实现
- 归并排序及go语言实现
- golang类型系统笔记
- Go项目目录管理
- Go项目的目录结构
- goleveldb源码分析-key的存储和构成
- Google,微软,科大讯飞的语音识别引擎对比
- ubuntu编译google protobuf
- 用MFC制作程序启动logo
- go blank identifier _作用
- Google Maps API V3 之 路线服务
- Google Maps API V3 之 图层
- Ionic中用$state.go()跳转页面时也可以有动画效果
- Google Maps API V3 之绘图库 信息窗口