HTTP基本认证
2023-09-27 14:24:53 时间
认证概念:
服务器需要通过某种方式来了解用户的身份,一旦服务器知道了用户的身份,就可以判定用户可以访问事务和资源了;通常通过用户名和密码;
HTTP响应/认证框架
HTTP认证模型:
![](http://upload-images.jianshu.io/upload_images/460624-b89bb41a9b69f161.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
质询/响应认证框架
HTTP的两个官方的认证协议:基本认证和摘要认证
认证的四个步骤:
请求: 客户端发起一条请求;第一条请求没有认证消息;
质询: 服务器对客户端进行质询;返回一条401 Unauthorized响应,并在www-Authenticate首部说明如何以及在哪里进行认证;一般指定对哪个安全域进行认证;
授权:客户端收到401质询,弹出对话框,询问用户名和密码,用户输入用户名和密码后,客户端会用一个冒号将其连接起来,编码成“经过扰码的”Base-64表示形式,然后将其放在Authorization首部中回送;
成功: 服务器对用户名和密码进行解码,验证它们的正确性,然后用一条HTTP 200 OK报文返回所请求的报文;
![](http://upload-images.jianshu.io/upload_images/460624-2304e680e32198d1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
基本认证实例
![](http://upload-images.jianshu.io/upload_images/460624-fd668a413281536b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
基本认证首部
Base-64编码:会把一个8位字节序列转划分成一些6位的块,用每个6位的块在一个特殊在一个特殊的由64个字符组成的字母表中选择一个字符。
![](http://upload-images.jianshu.io/upload_images/460624-1a986886e0a3962a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
编码实例
安全域:将受保护的文档组织成一个安全域;每个安全域都可以有不同的授权用户集;会在www-Authenticate首部包含realm指令;
![](http://upload-images.jianshu.io/upload_images/460624-64ab2ad67863aa02.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
服务器上的安全域
![](http://upload-images.jianshu.io/upload_images/460624-37b732099ac87257.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/566)
具有安全域的质询响应
代理认证
通过中间代理服务器实现对服务器内部资源和文档的统一访问控制;
![](http://upload-images.jianshu.io/upload_images/460624-366681fd5a1fffa9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
与Web服务器的差异
状态码:407
首部:Proxy
基本认证的安全缺陷:
Base-64安全性不高,容易解密;使用SSL加密信道;使用摘要认证;
</div>
相关文章
- 如何为nginx服务开启基本认证(用户名和密码)
- 小程序远程仓库的认证与设置问题
- Nodejs进阶:express+session实现简易身份认证
- springSecurity自定义认证配置
- 【AGC】集成AGC认证服务facebook登录报错问题
- 如何在Flutter中集成华为认证服务
- 《21天学通Java(第6版)》—— 1.9 认证练习
- java中关于SSL/TSL的介绍和如何实现SSL Socket双向认证
- Node.js 使用JWT进行用户认证
- Redis使用认证密码登录
- SpringSecurity自定义用户认证逻辑
- 转 Codeigniter-实现权限认证
- oauth2认证
- SharePoint 2013 配置基于表单的身份认证
- Django:前后端分离 djangorestframework开发API接口 serializer序列化认证组件
- 接口 Swagger 03 基于Token的身份认证