WebSocket协议源码文档分析五

本文档分析WebSocket协议中如何支持HTTP身份验证,包括基本、摘要、NTLM和协商认证类型。讨论了设计要点、具体变化及风险,指出Chrome的新WebSocket堆栈已实现HTTP身份验证功能,但需要对凭据处理进行改进。
摘要由CSDN通过智能技术生成

WebSocket HTTP Auth Design

目的

支持WebSocket握手的HTTP身份验证。

背景

自从黎明起,HTTP协议就使用401“未经授权”状态代码,WWW-Authenticate响应标头和授权请求标头支持认证机制。
由于安全性差,缺乏标准的会话超时和注销功能以及不良的UI体验,此机制尚未在公共Internet站点上广泛使用。但是,由于易于实现,它被广泛用于路由器等家庭网络设备以及某些公司环境中。
共有三种类型:

  • “基本”-用户名和密码以混淆的纯文本格式发送
  • “摘要”-密码以随机数散列
  • “协商”-也称为SPNEGO。这是一个有状态的质询/响应协议。由于与Windows单点登录相集成,因此在仅Windows环境中很流行,从而允许进行身份验证而无需重新输入用户名和密码。它还可以与基于Kerberos的单点登录一起使用。

WebSocket是一种使用基于HTTP的握手在不受信任的Java脚本和协作服务器之间进行双向通信的方法。 Chrome浏览器的WebSocket堆栈最初是在WebSocket握手旨在模仿HTTP而不兼容HTTP的时候开发的。随后,该标准得到了发展,以便可以将握手视为对HTTP的升级,并且包括HTTP身份验证在内的HTTP语义已经在主要的浏览器和服务器中实现,并且受到用户的期望。
Chrome的新WebSocket堆栈使用Chrome的HTTP堆栈来引导握手,因此实现HTTP身份验证的大多数功能已经存在。但是,需要一些小的更改。

要求

  • 适当地响应服务器发出的401响应,包括类型为“基本”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值