用户认证技术与HTTP协议
一、用户认证技术概述
1.1 需求背景
在公共上网区,用户需要输入账号和密码才能上网,以确保网络行为可追踪。具体网络划分如下:
-
172.16.1.2/24
-
FE-FC-FE-E9-9E-95
-
172.16.1.0/24 IT部
-
172.16.2.0/24 办公区
-
172.16.3.0/24 公共上网区
当用户首次上网时,系统会要求提交用户名和密码信息,如果与本地或第三方服务器信息一致,则认证通过。这种认证方式适用于:
-
对认证要求严格的场景
-
需要记录具体账号上网日志的场景
-
需要与现有第三方服务器结合认证的场景
二、HTTP协议基础
2.1 超文本(HyperText)
超文本是包含超链接(Link)和各种多媒体元素标记(Markup)的文本。这些超文本文件相互链接形成网状结构(Web),因此被称为网页(Web Page)。最常见的超文本格式是HTML。
2.2 URL(统一资源定位符)
URL用于唯一标识万维网中的文档,由三部分组成:
-
协议
-
主机和端口(默认80)
-
文件名
2.3 HTTP协议
HTTP是一种应用层协议,按照URL指示将超文本文档从Web服务器传输到浏览器,实现超链接功能。
三、HTTP工作原理
3.1 请求/响应交互模型
用户点击URL为404 您访问的页面找不到了_腾讯网的链接后,浏览器和Web服务器执行以下动作:
-
浏览器分析URL
-
向DNS请求解析www.qq.com的IP地址
-
DNS返回解析出的IP地址
-
浏览器与服务器建立TCP连接(80端口)
-
浏览器请求文档:GET/index.html
-
服务器响应并发送文档index.html
-
释放TCP连接
-
浏览器显示index.html内容
3.2 详细访问流程分析
-
DNS请求:PC向DNS服务器222.246.129.80发出DNS QUERY请求,请求www.qq.com的A记录
-
DNS回复:DNS服务器返回解析出的三条A记录:59.37.96.63、14.17.42.40、14.17.32.211
-
TCP三次握手:PC向解析出的服务器地址发起TCP连接
-
GET请求:PC向服务器发出GET请求,请求主页
-
服务器响应:服务器回应HTTP/1.1 200 OK,返回主页数据
-
连接断开:完成数据交互后,四次挥手断开连接
四、HTTP请求方法与状态码
4.1 HTTP请求方法
方法 | 含义 |
---|---|
GET | 请求读取一个Web页面 |
HEAD | 请求读取Web页面首部 |
POST | 附加一个命名资源 |
PUT | 请求存储一个Web页面 |
DELETE | 删除Web页面 |
TRACE | 用于测试,要求服务器送回收到的请求 |
CONNECT | 用于代理服务器 |
OPTION | 查询特定选项 |
4.2 HTTP状态码
状态码 | 含义 | 示例 |
---|---|---|
1xx | 通知信息 | 100=服务器正在处理客户请求 |
2xx | 成功 | 200=请求成功(OK) |
3xx | 重定向 | 301=页面改变了位置 |
4xx | 客户错误 | 403=禁止的页面;404=页面未找到 |
5xx | 服务器错误 | 500=服务器内部错误;503=以后再试 |
五、HTTP头部信息
5.1 请求头
头 | 说明 |
---|---|
User-Agent | 浏览器和平台信息 |
Accept | 客户能处理的页面类型 |
Accept-Charset | 客户可接受的字符集 |
Accept-Encoding | 客户能处理的页面编码方法 |
Accept-Language | 客户能处理的自然语言 |
Host | 服务器的DNS名称(必需) |
Referer | 用户从哪个页面出发访问当前页面 |
Cookie | 送回之前设置的Cookie |
5.2 响应头
头 | 说明 |
---|---|
Server | 服务器信息 |
Content-Encoding | 内容编码方式 |
Content-Language | 页面使用的自然语言 |
Content-Length | 以字节计算的页面长度 |
Content-Type | 页面的MIME类型 |
Last-Modified | 页面最后修改时间 |
Location | 重定向到另一个URL |
Set-Cookie | 服务器希望客户保存的Cookie |
六、密码认证实战分析
6.1 认证流程
-
PC进行DNS解析
-
PC向服务器发起TCP三次握手
-
PC发出GET请求
-
AC拦截GET请求,伪装成服务器回复HTTP 302重定向到认证页面
-
用户输入用户名和密码完成认证
6.2 密码认证配置步骤
-
创建用户组(如"公共区")
-
新增用户并设置本地密码
-
新增认证策略,选择认证方式为密码认证
-
在认证高级选项中勾选"未认证或被冻结时允许访问DNS服务"
6.3 认证问题排查
如果"密码认证页面"无法正常弹出,应检查:
-
网桥部署虚拟地址是否与内网冲突
-
AC下接设备是否有限制
-
是否启用未认证用户允许访问DNS服务
-
访问HTTPS网站时是否启用HTTPS请求重定向
-
上网策略是否拒绝HTTP应用和DNS应用
-
防火墙规则是否拒绝80和53端口
七、用户与用户组管理
7.1 组织结构
SANGFOR AC提供树形组织结构,符合企业人员结构划分,同时可以对相同上网策略进行继承。每个用户有一个直属父组。
7.2 用户管理方式
-
手动添加用户:可以一次新建一个或多个用户/组
-
批量导入用户:将用户和组格式做成csv表格一次性导入
-
认证策略自动添加:对于不需要认证或单点登录的用户
7.3 用户注销方式
-
在在线用户管理中强制注销
-
设置无流量时强制注销用户
-
设置每天强制注销时间
-
设置认证页面关闭时自动注销
-
设置MAC变动时自动注销
八、关键概念详解
8.1 DNS的A记录
将主机名解析成对应的IP地址。
8.2 Referer字段
浏览器向WEB服务器表明自己是从哪个网页/URL获得当前请求中的网址。
8.3 Location字段
WEB服务器告诉浏览器,试图访问的对象已被移到别的位置,到该头部指定的位置去取。
8.4 Server字段
响应头包含处理请求的原始服务器的软件信息。