在当今安全形势愈发严峻的背景下,Web 应用防火墙(WAF)不仅承担着拦截攻击的职责,更逐渐向“可控、安全、可溯源”方向演进。近期,开源 Web 应用防火墙雷池(SafeLine)发布了全新的 身份认证体验功能,为管理和使用者带来了更高的安全性与操作便捷性。
本文将深入解析该新功能的技术背景、实现方式、应用场景及体验优势。
为什么 WAF 需要身份认证机制?
传统 WAF 更偏向于“流量防御”,而在云原生、多租户、远程办公等现代场景下,仅靠 IP 白名单、Token 并不足以支撑细粒度的权限控制。攻击面从公网扩展到了内部管理界面,WAF 本身的安全也亟需加强。
雷池此次引入身份认证体验,旨在:
- 限制未授权访问 WAF 管理后台;
- 统一认证入口,支持多种身份源;
- 提供良好的用户操作体验,降低安全门槛。
配置介绍
基础配置
雷池提供两种认证模式:简易认证和统一认证。
- 简易认证:即应用独立的认证体系,用户登录后仅可访问该应用
- 统一认证:即 SSO(单点登录),用户登录一次即可访问多个相关应用,无需重复登录。 参考 统一认证
字段 | 描述 |
---|---|
登录方式 | 提供多种登录方式可供选择,包括账号密码、钉钉、企业微信、OIDC、GitHub、微信扫码登录、CAS、LDAP。统一认证模式下需前往身份认证-配置-统一认证 进行配置。 |
认证回调地址 | 如需向应用服务器传递用户认证信息时填写,用于在此换取用户信息。 |
应用跳转地址 | 统一认证模式下必填,在统一管理面板点击应用时会跳转到此地址。 |
高级配置
- 审批配置:支持选择是否进行授权审批
- 需审批授权访问:用户首次访问此应用认证通过后会触发审批申请,需等待管理员审批通过后才可访问。
- 认证后直接访问:用户认证通过后可直接访问应用,无需审批。
- 针对特定条件启用身份认证:支持选择满足时认证或满足时跳过认证
如何配置将用户认证信息传递给应用服务器?
- 用户认证成功后,雷池会重定向到以下地址,其中
http://example.com/application
是在应用配置的认证回调地址
:
http://example.com/application?code=123456&redirect_uri=用户原访问地址
- 在雷池控制台
通用设置-控制台管理
页面找到API Token
,获取 Token - 应用在
认证回调地址
中实现用code
来请求雷池的/.safeline/auth/api/user
接口获取认证用户信息,code
只能使用一次
// 请求:
GET http://safeline-console.com/.safeline/auth/api/user?code=123456
X-SLCE-API-TOKEN: safeline-api-token
// 响应:
Content-Type: application/json
{
"code": 0, // 0: 成功,非0: 失败
"msg": "错误描述",
"data": {
"id": 1,
"username": "username"
}
}
- 应用成功获取到用户信息之后缓存登录信息,用于后续判断当前用户是否登录,然后重定向到
redirect_uri