认证模式之Spnego模式
Spnego模式是一种由微软提出的使用GSS-API接口的认证模式。它扩展了Kerberos协议,在了解Spnego协议之前必须先了解Kerberos协议,Kerberos协议主要解决身份认证及通信密钥协商问题。它大致的工作流程例如以下:
①client依据自己username向密钥分发中心KDC的身份认证服务AS请求TGS票证。
②AS生成一个TGS票证、查询相应用户的password,然后通过用户password将TGS票证加密,响应给client。
③client通过用户password解密TGS票证。假设password正确就能获取到TGS票证,然后用TGS票证去票证授予服务TGS请求服务票证。
④TGS将服务票证响应给client。
⑤client使用服务票证去訪问某服务,服务验证服务票据是否合法。
⑥验证通过,開始通信。
在了解了Kerberos协议后,我们再来看看Spnego的认证过程是如何的。因为spnego扩展自kerberos协议。认证的核心流程一样,仅仅是在浏览器与webserver之间的http通信过程中嵌入认证流程。例如以下图:
①client浏览器向webserver发送http请求。
②server返回401状态码,响应头部加上 WWW-Authenticate:Negotiate。
③用户通过浏览器输入username向AS请求TGS票证。
④AS生成TGS票证,然后查询用户password并用此password加密TGS票证,返回浏览器。
⑤浏览器使用用户password解密出TGS票证,并向TGS服务发起请求。
⑥TGS服务生成服务票证响应给浏览器。
⑦浏览器将服务票证封装到SPNEGO token中。并发送给webserver。
⑧server解密出username及服务票证,将票证发往TGS服务验证。
⑨通过验证。開始通信。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架