首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >解决运维痛点,提高运维安全性-雷池 SafeLine WAF新功能身份认证深度体验

解决运维痛点,提高运维安全性-雷池 SafeLine WAF新功能身份认证深度体验

作者头像
王忘杰
发布2026-03-18 12:39:28
发布2026-03-18 12:39:28
720
举报
文章被收录于专栏:王忘杰的小屋王忘杰的小屋

雷池介绍

使用雷池 SafeLine WAF已经两年多了,在1.5.x版本时就已经开始测试使用,并在推出LTS版本后转入LTS分支。

mayrpcnm.png
mayrpcnm.png

近期雷池 SafeLine WAF重点更新了身份认证功能,并提供了SSO单点登录认证,因此本次对此功能进行深度体验。

业务痛点

在公司运维中,会部署一些独立的自开发运维工具,如MQ消息队列监控工具、JVM虚拟机内存监控工具、交换机巡检备份工具;本次介绍我自己开发使用的MQ消息队列监控工具结合雷池的使用。

MQ消息队列监控工具

整个工具由下面几部分组成 MQ消息队列-Agent采集写入数据库、分析、企业微信webhook告警(python)-企业微信webhook消息配置为PHP网页-PHP网页可视化展示最近的MQ分析数据库

由于开发的工具较多,均没有配置独立的身份认证,即任何人都可以通过连接访问

mays0fj0.png
mays0fj0.png

雷池WAF身份认证

为防止隐私泄露,本次全新安装雷池WAF

雷池WAF安装

安装docker

使用anolis8.10操作系统,关闭防火墙,安装docker

关闭防火墙是为了防止干扰实验结果

1、安装docker

代码语言:javascript
复制
yum install -y yum-utils
#阿里云加速源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io

2、配置docker网段和加速源

代码语言:javascript
复制
/etc/docker/daemon.json

{
"bip":"192.168.120.1/24",
"registry-mirrors":[
"https://docker.1panel.live"
]
}

3、启动服务

代码语言:javascript
复制
systemctl enable --now docker

4、关闭防火墙

代码语言:javascript
复制
systemctl disable --now firewalld

安装雷池

代码语言:javascript
复制
yum install python3
bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"
maysejlr.png
maysejlr.png

部署完成

maysl5ob.png
maysl5ob.png

MQ消息队列监控工具部署

部署php环境

代码语言:javascript
复制
yum install httpd php php-mysqli php-json
systemctl enable --now httpd

将MQ查询的PHP程序放入/var/www/html/index.php,运行正常

mays0fj0.png
mays0fj0.png

雷池WAF身份认证配置

添加应用防护

mayx30ah.png
mayx30ah.png

可配置基础账号密码认证

mayx44yi.png
mayx44yi.png

也可配置三方账号密码认证,注意个人免费版和收费版可配置项不同

mayx7621.png
mayx7621.png

配置基础身份认证演示

mayx4o28.png
mayx4o28.png

可配置授权访问或直接访问

直接访问效果

mayx5n8w.png
mayx5n8w.png

错误账号密码效果

mayx6956.png
mayx6956.png

通过验证效果

显示正在进入并跳转

mayxa8n8.png
mayxa8n8.png

审批授权效果

配置为审批授权

mayxhwqd.png
mayxhwqd.png

登陆提示未授权

mayxkckt.png
mayxkckt.png

雷池-身份认证 进行授权

mayxlf9n.png
mayxlf9n.png
mayxlmz9.png
mayxlmz9.png

审批通过后,页面自动跳转,访问成功

微信开放平台对接效果

由于微信开放平台需要实名认证,这里无法演示,最终效果为扫码登录

mayxfq19.png
mayxfq19.png

身份认证高级功能-特定条件身份认证

可设置条件、IP范围、地理范围

mayy2xg1.png
mayy2xg1.png

身份认证高级功能-用户认证信息传递

官方文档

代码语言:javascript
复制
如何配置将用户认证信息传递给应用服务器?
用户认证成功后,雷池会重定向到以下地址,其中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: 失败
"msg":"错误描述",
"data":{
"id":,
"username":"username"
}
}
应用成功获取到用户信息之后缓存登录信息,用于后续判断当前用户是否登录,然后重定向到 redirect_uri

注意

代码语言:javascript
复制
GET http://safeline-console.com/

这里域名是应用的域名,不是雷池控制台,即

代码语言:javascript
复制
GET http://example.com/.safeline/auth/api/user?code=

简单DEMO实现获取雷池身份验证用户名 auth.php

代码语言:javascript
复制
<?php
// 打印更多报错信息
error_reporting(E_ALL);ini_set('display_errors',);
// 判断是否是HTTPS
$protocol=(!empty($_SERVER['HTTPS'])&&$_SERVER['HTTPS']!=='off'||$_SERVER['SERVER_PORT']==)?"https://":"http://";
// 获取域名和请求URI
$currentUrl=$protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$parsedUrl=parse_url($currentUrl);
$queryString=$parsedUrl['query'];

parse_str($queryString,$queryParams);
$code=isset($queryParams['code'])?$queryParams['code']:null;
$url='http://这里是我的应用域名/.safeline/auth/api/user?code='.urlencode($code);// 替换为实际API地址
$ch=curl_init();
curl_setopt_array($ch,[
CURLOPT_URL=>$url,
CURLOPT_HTTPHEADER=>[
'X-SLCE-API-TOKEN: 这里是我的密钥'
],
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_SSL_VERIFYHOST=>false
]);
$response=curl_exec($ch);
if(curl_errno($ch)){
die('CURL Error: '.curl_error($ch));
}
$httpCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
if($httpCode!==){
die('HTTP Error: '.$httpCode);
}
print_r($response);
$data=json_decode($response,true);
if(json_last_error()!==JSON_ERROR_NONE){
die('JSON解析失败: '.json_last_error_msg());
}
print_r($data);
curl_close($ch);

配置回调地址

maz333l1.png
maz333l1.png
登陆测试

登录heihei

maz30aph.png
maz30aph.png

返回用户名heihei

代码语言:javascript
复制
Array([code]=>[msg]=>[data]=>Array([id]=>[username]=> heihei ))

拿到用户名后,下一步可以写入session或cookie,跳转页面,完成权限认证操作

意见与建议

1、登录界面无法直接回车登录,需要鼠标点击登录,建议改为回车登录 2、身份认证审核信息,建议使用浏览器消息通知机制,直接在标签页弹消息提醒

小结

太强大了!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王忘杰的小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 雷池介绍
  • 业务痛点
    • MQ消息队列监控工具
  • 雷池WAF身份认证
    • 雷池WAF安装
      • 安装docker
      • 安装雷池
    • MQ消息队列监控工具部署
    • 雷池WAF身份认证配置
  • 配置基础身份认证演示
    • 直接访问效果
    • 错误账号密码效果
    • 通过验证效果
    • 审批授权效果
  • 微信开放平台对接效果
  • 身份认证高级功能-特定条件身份认证
  • 身份认证高级功能-用户认证信息传递
    • 意见与建议
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档