国内最强悍的工作流平台,工作流平台功能有哪些?以及该如何选择?
554
2022-05-30
本文档介绍的是通过调用API方式对访客进行授权,允许访客接入网络的方案。
功能概述
第三方认证主要应用于商业Wi-Fi终端用户在商场酒店、机场地铁、企业来访等情景通过Wi-Fi访问互联网的场景,需要对接入网络的访客进行用户认证,同时提供宣传,推荐及营销等功能,通过认证的访客被允许接入Wi-Fi使用网络。
第三方合作伙伴或开发者为接入访客提供认证Portal页面(如下图),并调用华为iMaster NCE-Campus API授权接口,或通过标准Radius协议与iMaster NCE-Campus交互,从而实现认证、计费、用户分析、市场营销等服务。
环境拓扑
此方案中由华为网络设备(Cloud AP)提供接入网络等功能,由华为云平台(iMaster NCE-Campus)提供用户授权管理、设备管理功能,由开发者应用提供Portal推送,校验信息等功能。
认证流程
终端用户在需要访问互联网时,连接Wi-Fi的SSID,登录由开发者应用推送的Portal页面进行认证。开发者应用调用华为iMaster NCE-Campus云平台认证授权API,给AP设备授权终端用户的Wi-Fi接入权限,从而终端用户可以访问互联网。
图1 iMaster NCE-Campus与开发者应用通过API方式交互
开发者应用,可以根据客户需求进行Portal页面定制、广告推送等应用,主要包含如下两大子系统:
Portal Server:用于提供访客的Portal认证,广告推送等功能。
授权平台:用于在合适的场景调用云平台的API接口,实现对终端的接入控制能力(如授权终端权限、查询授权结果、强制用户下线等)。
访客接入流程
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界面,携带apmac,uaddress,umac,SSID(base64加密后),nodeIp,siteId等信息给开发者应用,用于记录和分析。
Step 3
用户访问到第三方Portal界面,填入用户名和密码后单击“登录”。浏览器将用户名和密码POST到开发者应用的后台。
Step 4
开发者应用后台收到用户信息后,应用进行用户信息校验,校验通过后通过调用华为云平台授权终端用户的API接口,对此用户进行授权,放通用户的网络权限。放通权限后,开发者应用再调用云平台的查询授权结果接口,如果返回200 OK,则说明用户已获取网络权限。
调用授权API后的用户状态为success状态:
Step 5
开发者应用确认用户已获取网络权限后,重定向浏览器界面至登录成功页面,用户上线流程结束。
Step 6
用户想要主动下线时,单击“注销”。开发者应用收到相应后,查找此用户对应信息,调用华为云平台的强制用户下线API,收回用户的网络权限。
调用结束后,重定向浏览器界面至注销成功页面,此时用户在访问网络时需要重新登录。
调用的API信息
授权终端用户
典型场景
用户授权接口。
接口功能
根据认证用户信息,授予用户对应权限。
接口约束
该接口支持北向操作管理员访问,必须在用户会话建立后使用。
调用方法
POST
URI
/controller/cloud/v2/northbound/accessuser/haca/authorization
请求参数
表1 body参数列表
表2 body对象的参数列表
请求示例
cURL的示例
curl -k -s -L -i -X POST -H 'Content-Type: application/json' -H 'accept: application/json' -H 'Accept-Language: en-US' -H 'X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925' 'https://192.168.1.125:18002/controller/cloud/v2/northbound/accessuser/haca/authorization' -d '{
"deviceMac": "4C-FA-CA-1F-02-00",
"deviceEsn": "21500829352SG5900059",
"apMac": "4C-FA-CA-C1-9C-20",
"ssid": "dcd=",
"policyName": "aa",
"terminalIpV4": "10.66.85.177",
"terminalIpV6": "1030::C9B4:FF12:48AA:1A2B",
"terminalMac": "64-80-99-CF-8A-32",
"userName": "test",
"nodeIp": "192.168.211.236",
"temPermitTime": 300
}'
HTTP的示例
POST /controller/cloud/v2/northbound/accessuser/haca/authorization HTTP/1.1
Host: 192.168.1.125:18002
Content-Type: application/json
Accept: application/json
Accept-Language: en-US
X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925
{
"deviceMac": "4C-FA-CA-1F-02-00",
"deviceEsn": "21500829352SG5900059",
"apMac": "4C-FA-CA-C1-9C-20",
"ssid": "dcd=",
"policyName": "aa",
"terminalIpV4": "10.66.85.177",
"terminalIpV6": "1030::C9B4:FF12:48AA:1A2B",
"terminalMac": "64-80-99-CF-8A-32",
"userName": "test",
"nodeIp": "192.168.211.236",
"temPermitTime": 300
}
响应参数
返回状态码为200:操作成功,返回会话ID。
表3 CommonAuthorizationOutputDto对象的参数列表
返回状态码为400:校验异常。
详细信息请参见实际响应消息体。
返回状态码为500:内部错误。
详细信息请参见实际响应消息体。
响应示例
HTTP/1.1 200 OK
Date: Sun,20 Jan 2019 10:00:00 GMT
Server: example-server
Content-Type: application/json;charset=UTF-8
Content-Length: 250
Connection: keep-alive
{
"errcode": "0",
"errmsg": "",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d"
}
强制用户下线
典型场景
提供强制用户下线北向接口。
接口功能
强制用户下线。
接口约束
该接口支持北向操作管理员访问,必须在用户会话建立后使用。
调用方法
POST
URI
/controller/cloud/v2/northbound/accessuser/haca/cutuser
请求参数
表4 body参数列表
表5 body对象的参数列表
表6 thirdUserInfos对象的参数列表
请求示例
cURL的示例
curl -k -s -L -i -X POST -H 'Content-Type: application/json' -H 'accept: application/json' -H 'Accept-Language: en-US' -H 'X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925' 'https://192.168.1.125:18002/controller/cloud/v2/northbound/accessuser/haca/cutuser' -d '{
"thirdUserInfos": [{
"deviceMac": "4C-FA-CA-1F-02-00",
"deviceEsn": "21500829352SG5900059",
"terminalIpV4": "10.66.85.177",
"terminalIpV6": "1030::C9B4:FF12:48AA:1A2B",
"terminalMac": "64-80-99-CF-8A-32",
"userName": "test",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d",
"nodeIp": "192.168.211.236"
}]
}'
HTTP的示例
POST /controller/cloud/v2/northbound/accessuser/haca/cutuser HTTP/1.1
Host: 192.168.1.125:18002
Content-Type: application/json
Accept: application/json
Accept-Language: en-US
X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925
{
"thirdUserInfos": [{
"deviceMac": "4C-FA-CA-1F-02-00",
"deviceEsn": "21500829352SG5900059",
"terminalIpV4": "10.66.85.177",
"terminalIpV6": "1030::C9B4:FF12:48AA:1A2B",
"terminalMac": "64-80-99-CF-8A-32",
"userName": "test",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d",
"nodeIp": "192.168.211.236"
}]
}
响应参数
返回状态码为200:查询成功。
表7 CutUserOutputDto对象的参数列表
表8 success对象的参数列表
表9 failure对象的参数列表
返回状态码为400:校验异常。
详细信息请参见实际响应消息体。
返回状态码为500:内部错误。
详细信息请参见实际响应消息体。
响应示例
HTTP/1.1 200 OK
Date: Sun,20 Jan 2019 10:00:00 GMT
Server: example-server
Content-Type: application/json;charset=UTF-8
Content-Length: 250
Connection: keep-alive
{
"errcode": "0",
"errmsg": "",
"success": [{
"message": "success",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d"
}],
"failure": [{
"message": "success",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d"
}]
}
查询授权结果
典型场景
提供授权结果查询北向接口。
接口功能
根据授权回话ID,查询授权结果。
接口约束
该接口支持北向操作管理员访问,必须在用户会话建立后使用。
调用方法
GET
URI
/controller/cloud/v2/northbound/accessuser/haca/authorizationresult/{psessionid}
表10 path参数列表
表11 query参数列表
请求参数
无
请求示例
cURL的示例
curl -k -s -L -i -X GET -H 'Content-Type: application/json' -H 'accept: application/json' -H 'Accept-Language: en-US' -H 'X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925' 'https://192.168.1.125:18002/controller/cloud/v2/northbound/accessuser/haca/authorizationresult/5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d?nodeIp=192.168.211.236'
HTTP的示例
GET /controller/cloud/v2/northbound/accessuser/haca/authorizationresult/5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d?nodeIp=192.168.211.236 HTTP/1.1
Host: 192.168.1.125:18002
Content-Type: application/json
Accept: application/json
Accept-Language: en-US
X-ACCESS-TOKEN: CA48D152F6B19D84:637C38259E6974E17788348128A430FEE150E874752CE754B6BF855281219925
响应参数
返回状态码为200:添加成功。
表12 CommonAuthorizationOutputDto对象的参数列表
返回状态码为400:校验异常。
详细信息请参见实际响应消息体。
返回状态码为500:内部错误。
详细信息请参见实际响应消息体。
响应示例
HTTP/1.1 200 OK
Date: Sun,20 Jan 2019 10:00:00 GMT
Server: example-server
Content-Type: application/json;charset=UTF-8
Content-Length: 250
Connection: keep-alive
{
"errcode": "0",
"errmsg": "",
"psessionid": "5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d"
}
附件
API方式访客接入流程的完整HTTP请求信息:
点击查看
参考
您可以前往智简园区网络开发者社区,了解更多相关的信息。
智简园区 网络
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。