云平臺中繼認證(API方式)方案(云平臺api接口)
本文檔介紹的是通過調用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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。