平台中继认证(RADIUS方式)方案

网友投稿 709 2022-05-30

本文档介绍的是通过标准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服务器提供用户信息校验,授权下发等功能。

## 认证流程

云平台中继认证(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。格式有两种:
1. 老格式:2位槽号+2位子卡号+3位端口号+9位VLAN。
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       | 提供的服务类型。
2(Framed):PPP、802.1x用户等其他用户。
5(Outbound):IPSession接入用户。
6(Administrative):管理用户。
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       | 标识设备地址:
可以配置绑定具体的接口,取接口地址作为NAS-IP。
如果没有配置,取报文发送的出接口地址为NAS-IP。 |

| NAS-Port             | 用户接入的物理端口信息,格式有两种:
1. 12位槽号+8位端口号+12位VLAN,位数不足用0补齐。
2. 8位槽号+4位子卡号+8位端口号+12位VLAN,位数不足用0补齐。
3. 可通过命令行RADIUS-server format-attribute nas-port format-sting配置自定义属性携带的内容,参数format-string定义内容可以为槽号、子槽号、端口、外层VLAN、内层VLAN内容的任意组合,内容之间可以用1或0填充。
format-sting参数详细说明如下:
1. 使用关键字s、t、p、o、i分别表示slot,subslot,port,out-vlan(qinqvlan)/vpi,vlan(user-vlan)/vci。增加两个关键字n、z以便填充用。n表示填1,z表示填0。
2. s、t、p、o、i、z、n关键字后面必须是数值,并且数值范围为1~32。且s、t、p、o、i中的每个关键字只能出现一次。
3. s、t、p、o、i、z、n后面若是紧跟数字则第一个数字只能是1~9不能是0。
4. n、z可以出现在任何位置并且可出现多次,n、z后面跟数字,n12表示该位置填12位1,z12表示该位置填充12位0。
5. 字符串配置的位数加起来必须为32位。
6. 必须以s、t、p、o、i、z、n开头,以数字结尾。
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),了解更多相关的信息。

网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:机器学习框架指南
下一篇:Apache CarbonData、Hudi及Open Delta的对比研究
相关文章