基本认证机制

2018-05-03  本文已影响0人  lazy_boy_coder

认证

HTTP的质询/响应认证框架

HTTP 提供了一个原生的质询/响应 框架,简化了对用户的认证过程。
Web 应用程序收到一条 HTTP 请求报文时,服务器没有按照请求执行动作,而是以一个认证质询进行响应,要求用户来提供一些保密信息来说明他是谁,从而对其进行质询。
用户再次发起请求时,要附上保密证书(用户名和密码)。如果证书不匹配,服务器可以再次质询客户端,或产生一条错误信息。如果证书匹配就可以正常完成请求了。

认证协议与首部

HTTP 通过一组可定制的控制首部,为不同的认证协议提供了一个可扩展框架。列出的首部和内容会随从认证协议的不同而发生变化。认证协议也是在 HTTP 认证首部指定的。
HTTP 定义了两个官方认证的协议,基本认证和摘要认证。今后人们可以随意设计一些使用 HTTP 质询/响应框架的新协议。

认证的四个步骤:


认证流程.png

服务器对用户进行质询时,会返回一条 401 Unauthorized 响应,并在 www-Authenticate,首部说明如何已经在哪里认证。
当客户端授权服务器继续处理时,会重新发送请求,但会在 Authorization 首部附上加密的密码和其他一些认证参数。
授权请求成功完成时,服务器会返回一个正常的状态码(比如,200 OK);对高级认证算法来说,可能还会在 Authentication-Info 首部返回一些会话相关的附加信息。

HTTP 怎样允许不同的服务器使用不同的访问权限的,www-Authenticate 质询中包含了一个 realm 指令。Web服务器会将受保护的文档组织成一个安全域。每个安全域都可以有不同的授权用户集。
下面是一个基本的认证质询,他指定了一个域:

HTTP/1.0 401 Unauthorized
www-Authenticate: Basic realm="Corporate Financials"

域应该有一个描述性的字符名,比如:"Corporate Financials"(公司财务资料),以帮助用户了解应该使用哪个用户名和密码。在安全域的名称中列出服务器的主机名也是很有帮助的。

基本认证

基本认证实例
上一篇下一篇

猜你喜欢

热点阅读