HTTP提供了一个原生的质询/响应(challenge/response)框架
作者:互联网
人们用Web进行私人事务处理,访问私有的数据。通过Web可以很方便地访问这些信息,但仅仅是方便访问还是不够的。我们要保证只有特定的人能看到我们的敏感信息并且能够执行我们的特权事务
服务器需要通过某种方式来了解用户身份。一旦服务器知道了用户身份,就可以判定用户可以访问的事务和资源了。认证就意味着要证明你是谁。通常是通过提供用户名和密码来进行认证的。HTTP为认证提供了一种原生工具。尽管我们可以在HTTP的认证形式和cookie基础之上“运行自己的”认证工具,但在很多情况下,HTTP的原生认证功能就可以很好地满足要求。本文将详细介绍HTTP中的基本认证
认证
认证就是要给出一些身份证明。当出示像护照或驾照那样有照片的身份证件时,就给出了一些证据,说明你就是你所声称的那个人。在自动取款机上输入PIN码,或在计算机系统的对话框中输入密码时,也是在证明你就是你所声称的那个人
现在,这些策略都不是绝对有效的。密码可以被猜出来或被人偶然听到,身份证件可能被偷去或被伪造,但每种证据都有助于构建合理的信任,说明你就是你所声称的那个人.
服务器对用户进行质询时,会返回一条401 Unauthorized响应,并在WWW-Authenticate首部说明如何以及在哪里进行认证
当客户端授权服务器继续处理时,会重新发送请求,但会在Authorization首部附上加密的密码和其他一些认证参数
授权请求成功完成时,服务器会返回一个正常的状态码(比如,200 OK),对髙级认证算法来说,可能还会在Authentication-Info首部附加一些额外的信息
【安全域】
在对基本认证的细节进行讨论之前,需要解释一下HTTP是怎样允许服务器为不同的资源使用不同的访问权限的。上图(b)的WWW-Authenticate质询中包含了一个realm指令。Web服务器会将受保护的文档组织成一个安全域(security realm)。每个安全域都可以有不同的授权用户集
比如,假设Web服务器建立了两个安全域:一个用于公司的财务信息,另一个用于个人家庭文档。不同的用户对各个安全域的访问权限是不同的。公司的CEO应该能够访问销售额预测资料,但不应该允许他访问员工和其家人度假的照片
标签:Web,HTTP,challenge,用户,认证,访问,服务器,response 来源: https://www.cnblogs.com/jhaufvv/p/16480968.html