HTTP API认证与授权(二) - HTTP Basic

  1. 1. HTTP Basic Intro
  2. 2.技术原理
  3. Reference

1. HTTP Basic Intro

传统的API认证技术,使用username和password来进行登录。

整个流程是:

  • 用户发送一个不带认证信息的请求
  • 服务器返回401(unauthorized)状态,然后会在header里面包含一个WWW-authenticate
  • 用户如果想认证自己,就需要发一个携带有认证请求header的请求,其中包含了credentials的信息。
  • 通常会让用户输入密码,然后将这些信息放到Authorization的header当中去

fig1.png

在上述的整个流程当中,因为相当于明文传输了,所以这整个过程必须发生在HTTPS(TLS)连接当中。

2.技术原理

  • 进行Base64编码
    • Base64编码是为了处理特殊字符,方便在不同平台用不同方式进行传递的,其编码方式是可逆的,即可以很顺畅地被破解掉。
  • 将编码后的字段放到HTTP头的Authorization字段中,发到服务端
  • 服务端进行认证,成功则返回200;失败则返回401报错

使用Base64是为了消除特殊字符带来的影响,这种传递方式最大的问题是将用户名和口令放到了网络上进行传递,因此一般需要配合TLS/ SSL的安全加密来使用。这种同时将用户名和密码进行明文传输的协议并不是很好,尽管有HTTPS作为安全保护,但还是很有风险的。

Reference

  1. https://en.wikipedia.org/wiki/Basic_access_authentication
  2. https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 stone2paul@gmail.com

文章标题:HTTP API认证与授权(二) - HTTP Basic

文章字数:383

本文作者:Leilei Chen

发布时间:2020-01-31, 18:54:18

最后更新:2020-02-01, 22:06:57

原始链接:https://www.llchen60.com/HTTP-API%E8%AE%A4%E8%AF%81%E4%B8%8E%E6%8E%88%E6%9D%83-%E4%BA%8C-HTTP-Basic/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏