Skip to content

Portal 认证配置与参数对接指南

本文档详细说明 YunyiRADIUS 与各厂商 NAS/BAS 设备对接时的 Portal 参数传递方式、字段映射关系、配置方法,以及 Portal 模板管理。

概述

Portal 认证流程中,NAS/BAS 设备将用户重定向到 Portal 服务器时,通过 URL 参数或 HTTP 请求体传递用户标识信息。不同厂商使用的参数名称和传递方式不同,YunyiRADIUS 已做好兼容层,只需在添加设备时选择正确的厂商类型即可。

支持的厂商及参数格式

华为 (Huawei) — Vendor 2011

Portal 1.0 重定向 URL

华为 AC 将用户重定向到 Portal 服务器时携带以下参数:

http://portal-server:1816/portal/login?
  wlanuserip=10.0.0.100           # 用户 IP 地址
  wlanacname=AC-01                 # AC 名称(对应 NAS-Identifier)
  wlanacip=192.168.1.1             # AC IP 地址
  wlanusermac=00-11-22-33-44-55   # 用户 MAC 地址
  wlanapmac=AA-BB-CC-DD-EE-FF     # AP MAC 地址
  wlanssid=Hotel-WiFi              # WiFi SSID
  wlanuserfirsturl=http://...      # 认证成功后跳转地址

Portal 2.0 (JSON)

json
{
  "username": "user001",
  "password": "password",
  "ip_addr": "10.0.0.100",
  "mac_addr": "00:11:22:33:44:55",
  "nas_ip": "192.168.1.1",
  "nas_id": "AC-01"
}

RADIUS 认证属性

RADIUS 属性说明
Calling-Station-Id (31)MAC 地址(- 自动转 :
NAS-Identifier (32)AC 名称
NAS-IP-Address (4)AC IP
NAS-Port-Id (87)VLAN 信息(如 eth0.100 → vlan=100)

CoA / 强制下线

华为设备必须使用私有 VSA 才能正确执行 CoA:

CoA Request:
  User-Name = "user001"
  NAS-IP-Address = 192.168.1.1
  HW-IP-Host-Address (26-61) = 10.0.0.100   ← 华为私有
  HW-MAC-Addr (26-62) = 00:11:22:33:44:55   ← 华为私有

速率控制 VSA

VSA 子属性说明
HW-Input-Average-Rate (26-1)上行平均速率 (bps)
HW-Input-Peak-Rate (26-2)上行峰值速率 (bps)
HW-Output-Average-Rate (26-3)下行平均速率 (bps)
HW-Output-Peak-Rate (26-4)下行峰值速率 (bps)

H3C — Vendor 25506

Portal 重定向 URL

http://portal-server:1816/portal/login?
  userip=10.0.0.100               # 用户 IP
  usermac=00:11:22:33:44:55       # 用户 MAC
  nasip=192.168.1.1                # NAS IP
  nasid=AC-01                      # NAS 标识
  apmac=AA:BB:CC:DD:EE:FF         # AP MAC
  ssid=Office-WiFi                 # SSID
  vlan=100                         # VLAN ID

RADIUS 认证属性

RADIUS 属性说明
H3C-IP-Host-Addr (VSA 60)IP+MAC 组合字段(优先使用)
Calling-Station-Id (31)MAC 地址(回退)
NAS-Port-Id (87)VLAN 信息

CoA / 强制下线

H3C 支持标准 Acct-Session-Id 方式,也支持私有 VSA:

方式一(推荐):
  Acct-Session-Id = "abc123456"
  NAS-IP-Address = 192.168.1.1

方式二(私有 VSA):
  H3C-User-IP-Address (26-210) = 10.0.0.100
  H3C-User-MAC-Address (26-211) = 00:11:22:33:44:55

锐捷 (Ruijie) — Vendor 4881

Portal 重定向参数

锐捷通常使用标准 HTTP 参数或 JSON POST:

http://portal-server:1816/portal/login?
  wlanuserip=10.0.0.100
  wlanusermac=00:11:22:33:44:55
  wlanacname=AC-RJ-01
  wlanacip=192.168.2.1

或 JSON:

json
{
  "username": "user001",
  "password": "password",
  "ip_addr": "10.0.0.100",
  "mac_addr": "00:11:22:33:44:55",
  "nas_ip": "192.168.2.1",
  "nas_id": "AC-RJ-01"
}

RADIUS 认证属性

锐捷使用标准 RADIUS 属性,无需特殊处理:

属性说明
Calling-Station-Id (31)MAC 地址
NAS-IP-Address (4)设备 IP
NAS-Port-Id (87)VLAN 信息

CoA 速率控制

锐捷使用私有 VSA 控制带宽:

  • Ruijie-Input-Rate (26-1):上行 (bps)
  • Ruijie-Output-Rate (26-2):下行 (bps)
  • Ruijie-Input-Peak-Rate (26-3):上行峰值 (bps)
  • Ruijie-Output-Peak-Rate (26-4):下行峰值 (bps)

水星是 TP-Link 子品牌,使用标准 RADIUS 协议,无私有 VSA。

Portal 重定向

http://portal-server:1816/portal/login?
  wlanuserip=10.0.0.100
  wlanusermac=00:11:22:33:44:55
  ssid=Guest-Network

RADIUS 认证属性

完全标准:

属性说明
Calling-Station-Id (31)MAC 地址
NAS-IP-Address (4)设备 IP
NAS-Port-Id (87)端口标识

CoA

使用标准 Filter-Id + Session-Timeout 属性,无需私有 VSA。


ZTE (中兴) — Vendor 3902

速率控制 VSA

VSA说明
ZTE-Rate-Ctrl-SCR-Up上行速率 (bps)
ZTE-Rate-Ctrl-SCR-Down下行速率 (bps)

Ikuai (爱快) — Vendor 10055

Portal JSON 格式

json
{
  "username": "user001",
  "password": "password",
  "mac": "00:11:22:33:44:55",
  "terminal_type": "pc",
  "ap_mac": "AA:BB:CC:DD:EE:FF",
  "ssid": "WiFi-Name"
}

速率控制 VSA

  • RP-Upstream-Speed-Limit (单位: bps×8)
  • RP-Downstream-Speed-Limit (单位: bps×8)

MikroTik — Vendor 14988

速率控制

MikroTik 使用字符串格式的速率属性:

Mikrotik-Rate-Limit = "10M/20M"
// 格式: "{上行}k/{下行}k"

设备配置对照表

NAS 设备添加时选型

实际设备厂商代码说明
华为 AC6003/AC6005/AC6800V2011 (Huawei)Portal 1.0/2.0 均支持
华为 ME60/NE40E (BAS)2011 (Huawei)PPPoE 场景
H3C WX3540H/WX5500H25506 (H3C)Portal URL + RADIUS VSA
新华三 (New H3C)25506 (H3C)同 H3C
锐捷 RG-WS6000/RG-AC 系列4881 (Ruijie)标准属性为主
TP-Link AC 控制器11863 (TP-Link)完全标准协议
水星 AC/AP11863 (TP-Link)同 TP-Link
中兴 ZXR10 系列3902 (ZTE)私有速率 VSA
爱快 IK-G 系列10055 (Ikuai)JSON Portal
MikroTik RouterOS14988 (Mikrotik)字符串速率
Cisco WLC9 (Cisco)标准属性
Aruba 控制器14823 (Aruba)标准属性
Juniper/Mist2636 (Juniper)标准属性

配置步骤

1. 添加 NAS 设备

进入「网络管理 → NAS 设备」,点击「添加 NAS」:

参数示例值说明
名称AC-01-办公楼自定义标识
IP 地址192.168.1.1设备管理 IP
厂商代码Huawei/H3C/Ruijie...关键:影响 VSA 处理
RADIUS 密钥MySecret@2024与设备配置一致
CoA 端口3799默认值
接入策略选择公共模式策略关联认证规则

2. 配置设备端 RADIUS

以华为 AC 为例:

text
radius-server template yunyi
 radius-server shared-key cipher MySecret@2024
 radius-server authentication 10.0.0.1 1812 weight 80
 radius-server accounting 10.0.0.1 1813 weight 80

以 H3C AC 为例:

text
radius scheme yunyi
 primary authentication 10.0.0.1 1812
 primary accounting 10.0.0.1 1813
 key authentication cipher MySecret@2024
 key accounting cipher MySecret@2024
 user-name-format without-domain

3. 配置 Portal URL

设备端的 Portal URL 配置为:

http://{YunyiRADIUS_IP}:1816/portal/login?nas_id={设备标识}&nas_ip={设备IP}

或配置为 JSON Portal API:

POST http://{YunyiRADIUS_IP}:1816/api/user/public/login
Content-Type: application/json

{
  "phone": "{手机号}",
  "sms_code": "{验证码}",
  "nas_id": "{设备标识}",
  "nas_ip": "{设备IP}",
  "ip_addr": "{用户IP}",
  "mac_addr": "{用户MAC}"
}

4. 验证对接

  1. 用户连接 WiFi → 应被重定向到 Portal 页面
  2. 在「会话管理」中查看在线用户
  3. 执行 CoA 调速率测试
  4. 执行强制下线测试

常见问题

Portal 页面不弹出

  1. 检查 NAS 设备 Portal URL 配置是否正确
  2. 检查 DNS 劫持是否配置(设备需拦截用户 DNS 请求)
  3. 检查防火墙是否放行 1816 端口

认证失败

  1. 检查 RADIUS 密钥是否一致
  2. 查看服务日志 tail -f logs/yunyiradius.log
  3. 抓包验证:tcpdump -i eth0 port 1812 -w radius.pcap

带宽限制不生效

  1. 检查设备厂商代码是否正确
  2. 确认 CoA 端口可达:nc -uz 192.168.1.1 3799
  3. 华为设备需确认 CoA 功能已开启

强制下线失败

厂商检查项
华为必须使用 HW-IP-Host-Address + HW-MAC-Addr VSA
H3C优先使用 Acct-Session-Id
锐捷检查 CoA 端口 3799 是否开放
其他使用标准 Framed-IP-Address + Calling-Station-Id

Portal 模板管理

Portal管理

Portal 模板是用户看到的认证页面样式,支持自定义品牌 Logo、背景、色调等。

Portal模板

进入「Portal 管理 → 模板管理」可以创建和管理模板。

创建模板

参数说明
模板名称标识名称
模式public(公共模式)/ tenant(租户模式)/ both(通用)
Logo上传品牌 Logo
背景图自定义背景
主色调品牌色
CSS自定义样式(高级)
底部信息版权/联系信息

模板绑定优先级

网络节点(Node)是公共/租户模式的统一承载入口,节点上的 mode 决定认证模式,节点默认模板与默认策略作为中间优先级生效。Portal 模板的具体指定方式,优先级从高到低:

  1. 接入策略级:策略中指定 portal_template_id(最高优先级)
  2. 节点级:节点默认模板
  3. 系统默认:全局 Portal 模板

模板推断流程

HTTP 请求(?nas_id=X 或 ?nas_ip=Y)
  → lookupDevice() 查找 bas_device / net_nas
    → resolveEffectivePolicy()
      → 设备级 policy_id(最高)
      → 节点级 default_policy_id
      → 系统默认 (node_id=0)
        → ProductMode → "tenant" 或 "public"
        → PortalTemplateID → 指定模板或默认

用户门户

用户门户 (User Portal) 是租户模式下终端用户的自助管理页面:

  • 注册/登录
  • 账号信息管理(密码修改、手机绑定)
  • TOTP 两步验证
  • 套餐查看与在线购买
  • 在线设备管理
  • 使用记录与账单查询
  • 支付宝在线充值

用户门户是独立 Vue 3 SPA,部署在 /user/ 路径下。

访问地址汇总

地址说明
http://server:1816/admin管理后台
http://server:1816/user用户自助门户
http://server:1816/portalPortal 认证页(由 NAS 重定向)
http://server:1816/portal/api/loginPortal 登录 API (POST)
http://server:1816/api/user/public/login公共模式登录 API (POST)
http://server:1816/api/user/public/sms-code短信验证码发送 (POST)

YunyiStudio 版权所有