Shell 流程控制
1063
2022-05-30
快速開始
接口概述
第三方認(rèn)證主要應(yīng)用于商業(yè)Wi-Fi終端用戶在商場、大型綜超、酒店、機(jī)場等場所通過Wi-Fi訪問互聯(lián)網(wǎng)的場景。第三方合作伙伴為終端用戶提供認(rèn)證Portal頁面,并調(diào)用第三方認(rèn)證API或通過標(biāo)準(zhǔn)RADIUS協(xié)議對用戶授權(quán),使能終端用戶接入網(wǎng)絡(luò)。從而實(shí)現(xiàn)認(rèn)證、計費(fèi)等基礎(chǔ)服務(wù),以及用戶分析、市場營銷等增值服務(wù)。
在第三方認(rèn)證中只有云平臺中繼認(rèn)證才會需要進(jìn)行二次開發(fā),當(dāng)前支持的云平臺中繼認(rèn)證有如下兩種:
方式1:云平臺中繼認(rèn)證(API方式)
方式2:云平臺中繼認(rèn)證(RADIUS方式)
方式1:云平臺中繼認(rèn)證(API方式)
終端用戶在訪問互聯(lián)網(wǎng)時,連接Wi-Fi的SSID,登錄由第三方系統(tǒng)推送的Portal頁面進(jìn)行認(rèn)證。第三方系統(tǒng)調(diào)用華為iMaster NCE-Campus平臺認(rèn)證授權(quán)API,給AP設(shè)備授權(quán)終端Wi-Fi接入權(quán)限,從而使終端用戶訪問互聯(lián)網(wǎng)。
iMaster NCE-Campus與第三方系統(tǒng)通過API方式交互
第三方認(rèn)證系統(tǒng),可以根據(jù)客戶需求進(jìn)行Portal頁面定制、廣告推送等應(yīng)用。主要包含如下兩大子系統(tǒng):
Portal Server:用于提供Portal 認(rèn)證功能。
授權(quán)平臺:用于調(diào)用iMaster NCE-Campus的API接口,實(shí)現(xiàn)對終端的控制能力(如授權(quán)、授權(quán)結(jié)果查詢、強(qiáng)制用戶下線等)。
登錄認(rèn)證
客戶端向服務(wù)器下發(fā)登錄認(rèn)證請求,服務(wù)器返回一個Token和過期時間。
此處為模擬調(diào)測環(huán)境,已經(jīng)為各位開發(fā)者創(chuàng)建好北向用戶帳號。在調(diào)用真實(shí)環(huán)境的北向接口之前,應(yīng)在iMaster NCE-Campus上創(chuàng)建具有Open Api Operator角色的帳號,用于獲取Token。操作詳情請參見創(chuàng)建北向用戶。
請求URL
獲取Token值使用如下URL:
https://devzone.huawei.com/cloudcampusdb/controller/v2/tokens
Headers
此API使用如下Headers參數(shù)進(jìn)行登錄認(rèn)證:
請求示例
請求參數(shù)userName 和password為您的華為云帳號和密碼。
curl?-X?POST?--header?'Content-Type:?application/json'?--header?'Accept:?application/json'?--header?'Accept-Language:?en-US'?-d?'{"userName":"huaweiUser","password":"huaweiPassword"}'?'https://devzone.huawei.com/cloudcampusdb/controller/v2/tokens'
登錄認(rèn)證成功響應(yīng)
{????"errcode":?"0",????"errmsg":?"get?token?successfully.",????"data":?{????????"expiredDate":?"2020-01-08T17:10:11,887+08:00",????????"token_id":?"aHVhd2VpcGFvZnU6SHVhd2VpMTIjJA=="????}}
下發(fā)RESTful請求
客戶端攜帶上面的Token再下發(fā)RESTful請求給服務(wù)器。
請求URL
調(diào)用查詢用戶組API使用如下URL:
https://devzone.huawei.com/cloudcampusdb/controller/campus/v1/accountservice/usergroups
Headers
此API使用如下Headers參數(shù)下發(fā)RESTful請求:
請求示例
X-ACCESS-TOKEN取值為已獲取的Token值token_id。
curl?-X?POST?--header?'Content-Type:?application/json'?--header?'Accept:?application/json'?--header?'Accept-Language:?en-US'?--header?'X-ACCESS-TOKEN:?aHVhd2VpcGFvZnU6SHVhd2VpMTIjJA=='?-d?'{"parentId":"?a91e1696-02a2-4a68-bad4-aa639359c8cf","name":"friendName","address":"Xihu?North?Community","postalCode":"125744","adminEmail":"admin%40huawei.com","description":"common?user?group"}'?'https://devzone.huawei.com/cloudcampusdb/controller/campus/v1/accountservice/usergroups'
響應(yīng)
{?????"data":?{??????????"address":?"Xihu?North?Community",??????????"adminEmail":?"admin%40huawei.com",??????????"bsid":?"",??????????"description":?"common?user?group",??????????"fullPathName":?"",??????????"id":?"3e7d7186-dff6-48cf-8254-61cceae00090",??????????"name":?"friendName",??????????"orderId":?0,??????????"parentId":?"a91e1696-02a2-4a68-bad4-aa639359c8cf",??????????"postalCode":?"125744"?????},?????"errcode":?"0",?????"errmsg":?""}
向?qū)?/p>
創(chuàng)建北向用戶
使用華為云帳號登錄沙箱預(yù)約系統(tǒng)。
請參考預(yù)約實(shí)驗(yàn)室使用指導(dǎo),完成實(shí)驗(yàn)室預(yù)約。
進(jìn)入“我的環(huán)境 > 物理實(shí)驗(yàn)室”,當(dāng)實(shí)驗(yàn)室為 active 狀態(tài)時,單擊已預(yù)約實(shí)驗(yàn)室操作列表的“體驗(yàn)”,進(jìn)入體驗(yàn)界面。
單擊iMaster NCE-Campus圖標(biāo),在“屬性”頁簽獲取iMaster NCE-Campus 的IP、用戶名和密碼(使用此用戶名和密碼登錄iMaster NCE-Campus,用于創(chuàng)建北向用戶)。
鼠標(biāo)懸浮至iMaster NCE-Campus圖標(biāo),單擊
,可使用上面獲取的用戶名和密碼登錄到iMaster NCE-Campus。
選擇“系統(tǒng) > 系統(tǒng)管理 > 管理員”,在“用戶”頁簽中單擊“創(chuàng)建”,創(chuàng)建Open Api Operator帳號。請將“首次登錄修改密碼”選擇“否”。
兩次單擊“下一步”。
單擊“確定”。
REST API
約束與注意
接口的輸入?yún)?shù)、請求消息體、結(jié)果消息體統(tǒng)一采用UTF-8編碼。
通過PUT進(jìn)行修改操作時,如果非必填字段在報文中未攜帶,或填為null,則此字段維持原值,不作修改。若想清空一個string字段,可以填入空字符串””。
HTTP Header中,可以通過Accept-Language設(shè)置en-US來指定返回信息為英文,若不指定Accept-Language,則默認(rèn)返回英文信息。
通過API創(chuàng)建的數(shù)據(jù),不能在iMaster NCE-Campus界面上刪除。
所有API的請求報文中Host端口號由18008改為18002。
所有API的接口使用的是北向IP。
API接口調(diào)用會話超時時間默認(rèn)設(shè)置為10分鐘,若10分鐘內(nèi)無會話交互,則系統(tǒng)會自動清理會話session。
接口規(guī)范
iMaster NCE-Campus的所有REST接口的URL地址均遵從下述規(guī)范:
OP:對應(yīng)方法,方法包括POST、PUT、DELETE、GET。
service-path:REST API微服務(wù)路徑。
resource:操作的資源路徑。
query:參數(shù)集。使用“name=value”對標(biāo)識。
HTTP Headers
iMaster NCE-Campus對REST接口的Headers進(jìn)行了一定的限制,主要包括如下幾個參數(shù):
Content-Type:包含了文檔的“mime-type”。瀏覽器將會依據(jù)該參數(shù)決定如何對文檔進(jìn)行解析。
Accept:表示瀏覽器可接受的MIME類型。瀏覽器將會依據(jù)該參數(shù)決定接受何種參數(shù)格式。
Accept-Language:服務(wù)器端可接受的語言類型默認(rèn)為en-US。
X-ACCESS-TOKEN:發(fā)送Token信息給服務(wù)器。
方法說明
狀態(tài)碼定義
RESTful采用HTTP狀態(tài)碼來報告操作結(jié)果。
Java SDK向?qū)?/p>
準(zhǔn)備工作
如果您還沒有下載Java SDK,請先點(diǎn)擊這里CloudCampus Java SDK JAR下載我們的SDK JAR文件,SDK源碼請參考CloudCampus Java SDK Sources。
注:推薦使用JDK1.8及以上版本。
導(dǎo)入SDK包
將您下載的SDK JAR包導(dǎo)入您的Java工程,如果您使用maven構(gòu)建您的工程,使用此命令將SDK安裝到您的maven本地倉:
mvn?org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file?-Dfile=cloudcampus-1.0.0.jar
隨后在您的maven工程的pom.xml文件中引入SDK依賴:
初始化客戶端
使用com.huawei.cloudcampus.api.ApiClient類來初始化您的SDK,您需要配置北向API使用的端口號(18002),iMaster NCE-Campus控制器的IP以及北向帳號和密碼(請參考創(chuàng)建北向用戶),如下所示:
ApiClient?apiClient?=?new?ApiClient();?apiClient.setTenantName("tenant@north.com");?apiClient.setTenantPwd("Admin@1234");?apiClient.setHost("139.9.213.72");?apiClient.setPort("18002");
SDK使用示例
根據(jù)授權(quán)回話ID,查詢授權(quán)結(jié)果:
ClientUserManagerApi?api?=?new?ClientUserManagerApi(apiClient);Gson?gson?=?new?Gson();String?psessionid?=?"5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d";String?nodeIp?=?"192.168.211.236";CommonAuthorizationOutputDto?response?=?api.getAuthorizationresult(psessionid,?nodeIp);String?result?=?gson.toJson(response);System.out.println(result);
Python SDK向?qū)?/p>
準(zhǔn)備工作
如果您還沒有下載Python SDK,請先點(diǎn)擊這里CloudCampus Python SDK Sources下載我們的Python SDK源碼文件。
安裝SDK
下載完成后,解壓文件。打開cmd命令行,運(yùn)行如下命令進(jìn)入CloudCampus Python SDK源碼文件夾,例如運(yùn)行如下命令:
cd?FilesPath
FilesPath為CloudCampus Python SDK源碼文件夾
運(yùn)行如下命令安裝Python SDK:
pip?install?-r?requirements.txt
python?setup.py?install
安裝完成后,運(yùn)行如下命令查看SDK是否安裝成功:
pip?list
導(dǎo)入SDK包
以查詢授權(quán)結(jié)果接口為例:
導(dǎo)入ApiClient、Configuration,和本次調(diào)用的api(ClientUserManagerApi)
from?swagger_client.api_client?import?ApiClientfrom?swagger_client.apis.client_user_manager_api?import?ClientUserManagerApifrom?swagger_client.configuration?import?Configuration
初始化客戶端
使用ApiClient類來初始化您的SDK,您需要配置北向API使用的端口號(18002),iMaster NCE-Campus控制器的IP以及北向帳號和密碼(請參考創(chuàng)建北向用戶),如下所示:
tenantName?=?'tenant@north.com'tenantPwd?=?'Admin@1234'host?=?'139.9.213.72'port?=?'18002'config?=?Configuration(host,?port,?tenantName,?tenantPwd)api_client?=?ApiClient(config)
SDK使用示例
根據(jù)授權(quán)回話ID,查詢授權(quán)結(jié)果:
api?=?ClientUserManagerApi(api_client)psessionid?=?'5ea660be98a84618fa3d6d03f65f47ab578ba3b4216790186a932f9e8c8c880d'nodeIp?=?'192.168.211.236'model?=?api.get_authorizationresult(psessionid=psessionid,?node_ip=nodeIp)
方式2:云平臺中繼認(rèn)證(RADIUS方式)
認(rèn)證流程
終端用戶在訪問互聯(lián)網(wǎng)時,連接Wi-Fi的SSID,登錄由第三方系統(tǒng)推送的Portal頁面進(jìn)行認(rèn)證。第三方系統(tǒng)與華為iMaster NCE-Campus云平臺通過標(biāo)準(zhǔn)RADIUS協(xié)議對接,實(shí)現(xiàn)Portal認(rèn)證和計費(fèi)等功能。
iMaster NCE-Campus與第三方系統(tǒng)交互流程
支持的RADIUS消息
iMaster NCE-Campus作為中繼角色,可以將RADIUS消息發(fā)送給第三方的RADIUS服務(wù)器,實(shí)現(xiàn)認(rèn)證、授權(quán)和計費(fèi)功能。支持的RADIUS消息字段如下所示:
認(rèn)證消息列表
授權(quán)消息列表
計費(fèi)消息列表
智簡網(wǎng)絡(luò) 網(wǎng)絡(luò)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。