HTML5技术

HTTP认证 - 妙音天女(2)

字号+ 作者:H5之家 来源:H5之家 2017-03-27 17:00 我要评论( )

服务端的应答: HTTP/1.0 200 OK Server: HTTPd/1.0 Date: Sat, 27 Nov 2004 10:19:07 GMT Content-Type: text/html Content-Length: 10476 (跟随一个空行,随后是需凭据页的HTML文本)。 7.HTTP OAuth认证(详见

服务端的应答:
HTTP/1.0 200 OK
Server: HTTPd/1.0
Date: Sat, 27 Nov 2004 10:19:07 GMT
Content-Type: text/html
Content-Length: 10476
(跟随一个空行,随后是需凭据页的HTML文本)。

   

  7. HTTP OAuth认证(详见理解OAuth 2.0)

  • OAuth对于Http来说,就是放在Authorization header中的不是用户名密码, 而是一个token
  • 例:有一个"云冲印"的网站,可以将用户储存在Google的照片,冲印出来。用户为了使用该服务,必须让"云冲印"读取自己储存在Google上的照片。
  • OAuth在"客户端"(云冲印)与"服务提供商"(谷歌)之间,设置了一个授权层(authorization layer)。

  • "客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。
  • "客户端"登录授权层所用的令牌(token),与用户登录客户端所用的密码不同。
  • 用户可以在登录的时候,指定授权层令牌(token)的权限范围和有效期。
  • "客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。
  • 运行流程

    (A)用户打开客户端以后,客户端要求用户(Resource Owner)给予授权。

    (B)用户同意给予客户端授权。

    (C)客户端使用上一步获得的授权,向认证服务器申请令牌。

    (D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

    (E)客户端使用令牌,向资源服务器(服务提供商(谷歌)存放用户生成的资源的服务器)申请获取资源。

    (F)资源服务器确认令牌无误,同意向客户端开放资源。

  • 二、摘要认证 digest authentication(HTTP1.1提出的基本认证替代方法)

  • 介绍

  • 摘要认证可以看做是基本认证的增强版本,不包含密码的明文传递。
  • 引入了一系列安全增强的选项

  • "保护质量"(qop):authauth-int(带完整性保护的认证)
  • 服务器密码随机数(nonce)
  • 请求计数(nc = nonceCount)
  • 客户端密码随机数(cnonce = clientNonce)
  • 在HTTP摘要认证中使用 MD5 加密是为了达成"不可逆的",也就是说,当输出已知的时候,确定原始的输入应该是相当困难的。如果密码本身太过简单,也许可以 通过尝试所有可能的输入来找到对应的输出(穷举攻击),甚至可以通过字典或者适当的查找表加快查找速度。
  • 示例及说明

  • 下面的例子仅仅涵盖了"auth"保护质量的代码,因为在撰写期间,所知道的只有Opera和Konqueror网页浏览器支持"auth-int"。
  • 典型的认证过程包括如下步骤:

  • 客户端请求一个需要认证的页面,但是不提供用户名和密码。通常这是由于用户简单的输入了一个地址或者在页面中点击了某个超链接。
  • 服务器返回401 "Unauthorized" 响应代码,并提供认证域(realm),以及一个随机生成的、只使用一次的数值,称为密码随机数 nonce。
  • 此时,浏览器会向用户提示认证域(realm)(通常是所访问的计算机或系统的描述),并且提示用户名和密码。用户此时可以选择取消。
  • 一旦提供了用户名和密码,客户端会重新发送同样的请求,但是添加了一个认证头包括了响应代码。
  • 注意:客户端可能已经拥有了用户名和密码,因此不需要提示用户,比如以前存储在浏览器里的。
  • 客户端请求 (无认证):
    GET /dir/index.html HTTP/1.0
    Host: localhost
    (跟随一个新行,形式为一个回车再跟一个换行)

    服务器响应:
    HTTP/1.0 401 Unauthorized
    Server: HTTPd/0.9
    Date: Sun, 10 Apr 2005 20:26:47 GMT
    WWW-Authenticate: Digest realm="testrealm@host.com", //认证域
    qop="auth,auth-int", //保护质量
    nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", //服务器密码随机数
    opaque="5ccc069c403ebaf9f0171e9517f40e41"

    Content-Type: text/html
    Content-Length: 311

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
    <HTML>
    <HEAD>
    <TITLE>Error</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
    </HEAD>
    <BODY><H1>401 Unauthorized.</H1></BODY>
    </HTML>

    客户端请求 (用户名 "Mufasa", 密码 "Circle Of Life"):
    GET /dir/index.html HTTP/1.0
    Host: localhost
    Authorization: Digest username="Mufasa",
    realm="testrealm@host.com",
    //认证域
    nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093", //服务器密码随机数
    uri="/dir/index.html", //
    URI的摘要
    qop=auth, //保护质量
    nc=00000001, //请求计数
    cnonce="0a4f113b", //客户端密码随机数
    response="6629fae49393a05397450978507c4ef1",
    opaque="5ccc069c403ebaf9f0171e9517f40e41"

    (跟随一个新行,形式如前所述)。

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • URL解析 - 妙音天女

      URL解析 - 妙音天女

      2017-03-27 16:02

    • URL相关Web APIs - 妙音天女

      URL相关Web APIs - 妙音天女

      2017-03-26 18:02

    • URL编码参考手册 - 妙音天女

      URL编码参考手册 - 妙音天女

      2017-03-26 18:01

    • HTTP状态码 - 妙音天女

      HTTP状态码 - 妙音天女

      2017-03-25 13:01

    网友点评
    s