云平台中继认证(RADIUS方式)方案
本文档介绍的是通过标准RADIUS方式对访客进行授权,允许访客接入网络的方案。
## 功能概述
第三方认证主要应用于商业Wi-Fi终端用户在商场酒店、机场地铁、企业来访等情景通过Wi-Fi访问互联网的场景,需要对接入网络的访客进行用户认证,同时提供宣传,推荐及营销等功能,通过认证的访客被允许接入Wi-Fi使用网络。
第三方合作伙伴或开发者为接入访客提供认证Portal页面(如下图),并调用华为iMaster NCE-Campus API授权接口,或通过标准RADIUS协议与iMaster NCE-Campus交互,从而实现认证、计费、用户分析、市场营销等服务。
## 环境拓扑
此方案涉及功能点如下:
1. 华为网络设备(Cloud AP)提供接入网络等功能。
2. 华为云平台(iMaster NCE-Campus)提供设备管理功能。
3. 第三方Portal服务器提供Portal推送功能。
4. 第三方RADIUS服务器提供用户信息校验,授权下发等功能。
## 认证流程
终端用户在需要访问互联网时,连接Wi-Fi的SSID,登录由第三方系统推送的Portal页面进行认证。随后第三方RADIUS系统与华为iMaster NCE-Campus云平台通过标准RADIUS协议对接,实现认证与计费功能。
**图1** iMaster NCE-Campus与第三方系统交互流程
## 访客接入流程
- Step 1
访客接入Wi-Fi网络,访问任意页面(例如`http://1.1.1.1/`),经过AP转发时,被AP重定向到云平台上(189.180.13.187是云平台的地址),重定向时会携带ap-mac, redirect-url, ssid, uaddress, umac等信息给云平台。
- Step 2
云平台收到访问请求,根据配置,将其重定向到第三方Portal界面,携带uaddress,umac,ssid,redirect-url,loginurl,ap-mac等信息给第三方Portal(这些参数的名称与内容可以由Portal确定,在云平台上修改适配),用于记录和分析。
- Step 3
用户访问第三方Portal界面,输入用户名和密码后,单击”登录“。通过浏览器将用户名和密码Post到loginurl(loginurl是云平台的地址,云平台拿到用户信息后完成认证)。
- Step 4
云平台拿到用户信息后,将其封装在标准RADIUS 的Access request报文中,在第三方RADIUS服务器做认证,并根据返回的结果进行后续动作:
1. 返回Access Accept:进行**Step 5**。
2. 返回Access-Reject:云平台让浏览器返回错误信息,例如“用户密码错误”等。
- Step 5
云平台授权AP 放通此终端相关权限,包括ACL,限速等权限。同时开始与第三方RADIUS服务器开始计费报文的交互。
- Step 6
云平台重定向浏览器到successUrl,显示登录成功的页面。
- Step 7
用户想要主动下线时,单击”注销“;浏览器向logout_url(云平台地址)发送请求,云平台收到请求会首先取消用户的授权,然后重定向浏览器至第三方Portal的登录界面。
## 支持的RADIUS消息
iMaster NCE-Campus作为中继角色,可以将RADIUS消息发送给第三方的RADIUS服务器,实现认证、授权和计费功能。支持的RADIUS消息字段如下所示:
**表1** 认证消息列表
| 消息列表 | 说明 |
| ------------------ | ------------------------------------------------------------ |
| User-Name | 用户名,设置时候可以带域名(如user0001@isp),也可以不带域名(如user0001)。内容可以是用户MAC或配置的用户名。 |
| User-Password | 用户密码,PAP认证时,用户密码由NAS加密后传递给服务器。系统支持的用户PAP认证密码长度为0~128。内容可以是MAC地址或配置的密码。 |
| Called-Station-ID | 用来携带NAS设备的号码信息,一般为设备MAC地址(有线用户)或SSID(WLAN无线用户)。 |
| Calling-Station-ID | 用来携带客户端的号码信息,一般为MAC地址。 |
| Acct-Session-ID | 计费ID。格式:7位主机名+2位槽号+1位子卡号+2位端口号+ 4位外层VLAN+5位内层VLAN+6位CPU Tick+6位用户连接ID。 |
| Framed-IP-Address | 用户的IP地址。 |
| NAS-Port-ID | 用户接入的槽位号、子槽位号、端口号及vlanid。格式有两种:<br />1. 老格式:2位槽号+2位子卡号+3位端口号+9位VLAN。<br />2. 新格式:slot=槽号;subslot=子卡号;port=端口;vlanid=VLAN或者slot=槽号;subslot=子卡号;port=端口;vlanid=外层VLAN ;vlanid2=内层VLAN。 |
| NAS-Port-Type | 设置NAS的端口类型,用户在交换机接口下可以配置。默认类型是Ethernet(15),无线用户为IEEE_802.11(19)。 |
| Service-Type | 提供的服务类型。<br />2(Framed):PPP、802.1x用户等其他用户。<br />5(Outbound):IPSession接入用户。<br />6(Administrative):管理用户。<br />10(Call Check):MAX认证用户。 |
**表2** 授权消息列表
| 消息列表 | 说明 |
| ------------------------------------ | ------------------------------------------------------------ |
| Session-Timeout | 在Access-Accept报文中,表示用户剩余的时间,以秒为单位。在CHALLENGE报文中作为EAP用户的重认证时长。下发数值必须大于0。可利用该属性下发用户在线时长。 |
| Idle-Timeout | 用户的闲置切断时间,以秒为单位。 |
| HW-Input-Committed-Information-Rate | 上行承诺速率,单位bps(上行CIR)。 |
| HW-Output-Committed-Information-Rate | 下行承诺速率,单位bps(下行CIR)。 |
| Reply-Message | 此属性可用于认证接受报文中,表示成功消息,也可用于认证拒绝报文中,表示拒绝消息。目前只对WEB认证用户,会把此信息传给用户。对于WEB认证,必须WEB服务器的版本支持。 |
| Filter-ID | 通常该属性携带用户ACL号或用户组名或ucl-group名。RADIUS报文中只能携带ACL号或用户组名,不能同时携带两者。 |
**表3** 计费消息列表
| 消息列表 | 说明 |
| -------------------- | ------------------------------------------------------------ |
| Acct-Delay-Time | 用于上报发送该计费包花费的时间, 以秒为单位(不包括网络传输时间)。计费服务器收到该计费请求包后,可以从该计费请求包到达计费服务器的时间减去Acct-Delay-Time表示的时间得到NAS生成该计费请求包的时间(报文创建的时间)。在交换机中,Acct-Delay-Time表示的时间由两部分构成,一部分是RADIUS模块到AAA来取数据的时间和最近一次刷新的时间差,另外一部分是RADIUS模块发送该计费请求包耽误的时间(比如重传花费的时间)。 |
| Acct-Session-ID | 计费ID。格式:7位主机名+2位槽号+1位子卡号+2位端口号+ 4位外层VLAN+5位内层VLAN+6位CPU Tick+6位用户连接ID。 |
| Acct-Status-Type | 计费请求报文的类型。Accounting-Request中支持的计费请求报文类型如下:Start (Value=1)Stop (Value=2)Interium-Update (Value=3) |
| Calling-Station-ID | 用来携带客户端的号码信息,一般为MAC地址。 |
| Event-Timestamp | 生成计费请求报文的时间 (以秒为单位, 表示从1970年1月1日零点零分零秒以来的绝对秒数)。 |
| Framed-IP-Address | 用户的IP地址。 |
| NAS-Identifier | NAS设备名称,即sysname,主机名。 |
| NAS-IP-Address | 标识设备地址:<br />可以配置绑定具体的接口,取接口地址作为NAS-IP。<br />如果没有配置,取报文发送的出接口地址为NAS-IP。 |
| NAS-Port | 用户接入的物理端口信息,格式有两种:<br />1. 12位槽号+8位端口号+12位VLAN,位数不足用0补齐。<br />2. 8位槽号+4位子卡号+8位端口号+12位VLAN,位数不足用0补齐。<br />3. 可通过命令行RADIUS-server format-attribute nas-port format-sting配置自定义属性携带的内容,参数format-string定义内容可以为槽号、子槽号、端口、外层VLAN、内层VLAN内容的任意组合,内容之间可以用1或0填充。<br />format-sting参数详细说明如下:<br />1. 使用关键字s、t、p、o、i分别表示slot,subslot,port,out-vlan(qinqvlan)/vpi,vlan(user-vlan)/vci。增加两个关键字n、z以便填充用。n表示填1,z表示填0。<br />2. s、t、p、o、i、z、n关键字后面必须是数值,并且数值范围为1~32。且s、t、p、o、i中的每个关键字只能出现一次。<br />3. s、t、p、o、i、z、n后面若是紧跟数字则第一个数字只能是1~9不能是0。<br />4. n、z可以出现在任何位置并且可出现多次,n、z后面跟数字,n12表示该位置填12位1,z12表示该位置填充12位0。<br />5. 字符串配置的位数加起来必须为32位。<br />6. 必须以s、t、p、o、i、z、n开头,以数字结尾。<br />7. VLAN不存在时填0还是填1可以在o或i关键字前添加n、z说明,也就是说n、z后面可以跟数字或o/i。 |
| Acct-Session-Time | 用户的在线时长,以秒为单位。 |
| Acct-Input-Packets | 上行流量,单位报文个数。 |
| Acct-Output-Packets | 下行流量,单位报文个数。 |
| Acct-Input-Octets | 上行流量,单位字节数。 |
| Acct-Output-Octets | 下行流量,单位字节数。 |
| Acct-Input-Gigawords | 上行流量,单位1G字节数。 |
## 附件
HTTPS+RADIUS方式访客接入流程的HTTP请求信息:
[点击查看](https://devzone.huawei.com/cn/enterprise/campus/download/Https+Radius方式.har)
## 参考
您可以前往[智简园区网络开发者社区](https://developer.huaweicloud.com/techfield/network.html#CloudCampus),了解更多相关的信息。
- 点赞
- 收藏
- 关注作者
评论(0)