一、應用場景
一套完整的PORTAL認證系統(tǒng)需要有AC,AP,PORTAL,RADIUS等很多的設備或者服務單元。本身部署起來就有一定的復雜性。如果要是牽扯到與現(xiàn)有的系統(tǒng)進行對接,那么就勢必需要進行復雜的二次開發(fā)。
最常見的做法就是,RADIUS要支持更多的數(shù)據(jù)源或者數(shù)據(jù)格式。這種開發(fā)不但要修改RADIUS接口還要調整SQL,相當?shù)穆闊?br />
因此,一種可以和現(xiàn)有數(shù)據(jù)庫進行快速對接的方案就應運而生了。這就是HTTP認證。
二、技術方案
下圖就是一個典型的NAS設備對接認證源的拓撲圖。
[attach]322497[/attach]
高度靈活的HTTP認證
NAS設備可以對接的常用數(shù)據(jù)源包括,RADIUS,LDAP/AD等。其協(xié)議都是固定的不可更改的。而HTTP認證方式的最大特點就是使用了標準的HTTP協(xié)議。NAS作為HTTP客戶端把認證信息通過GET的方式提交給WEB服務器,WEB服務器通過查詢數(shù)據(jù)庫,并且經過業(yè)務邏輯運算后返回標準的JSON。而WEB程序的開發(fā)是非常容易的。
三、技術優(yōu)勢
讓NAC支持HTTP認證后,在兼容已有數(shù)據(jù)庫,例如,CRM,等系統(tǒng)方面具備了快速交付的能力。這對于很多沒有RADIUS系統(tǒng)的企業(yè),可以直接對接到HR系統(tǒng)中去進行管理。
四、HTTP服務器端的PHP測試代碼
<?php
$pdo = new PDO('mysql:host=localhost;dbname=nac','root','root');
//時間策略
$pdo->query( "SET NAMES UTF8" );
$username = $_GET['username'];
$password = $_GET['userpasswd'];
$method = $_GET['method'];
$userip = $_GET['userip'];
$usermac = $_GET['usermac'];
$nasip = $_GET['nasip'];
if($method==1){
$sql = "select * from user where username='".$username."'";
$rs = $pdo->query($sql,2);
$user = $rs->fetch();
if(!empty($user['id'])){
$array = array('Code'=>0,'User'=>array('Username'=>$username,'Userip'=>$userip,'Usermac'=>$usermac,'Sessiontime'=>$user['sessiontime'],'in'=>$user['in'],'out'=>$user['out']));
}
else{
$array = array('Code'=>1,'User'=>array('Username'=>$username,'Userip'=>$userip,'Usermac'=>$usermac));
}
$pdo=null;
}
else{
$sql = "select * from user where username='".$username."' and password='".$password."'";
$rs = $pdo->query($sql,2);
$user = $rs->fetch();
if(!empty($user['id'])){
$array = array('Code'=>0,'User'=>array('Username'=>$username,'Userip'=>$userip,'Usermac'=>$usermac,'Sessiontime'=>$user['sessiontime'],'in'=>$user['in'],'out'=>$user['out']));
}
else{
$array = array('Code'=>1,'User'=>array('Username'=>$username,'Userip'=>$userip,'Usermac'=>$usermac));
}
$pdo=null;
}
$data['url'] = 'http://'.$nasip;
$data['data'] = array('info'=>json_encode($array));
$data['method'] = 'post';
echo json_encode($array);
getAPI($data);
function getAPI($data){//抓取數(shù)據(jù)
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $data["url"]);
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt ( $ch, CURLOPT_HEADER, 0 );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_TIMEOUT,3);
if($data["method"]=="post"){
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data['data'] );
}
$getSysinfo = curl_exec ( $ch );
curl_close ( $ch );
$return=json_decode($getSysinfo,true);
return $return;
}
五、參考文獻
NAC的HTTP認證功能介紹
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書》
2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21》
3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書》
4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》》
5、回復“ZGDX”免費領取《中國電信5G NTN技術白皮書》
6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解》
7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書》
8、回復“5GX3”免費領取《 R16 23501-g60 5G的系統(tǒng)架構1》
|