使用JANUSEC應(yīng)用網(wǎng)關(guān)給內(nèi)部網(wǎng)站添加身份認(rèn)證

轉(zhuǎn)載自金湯智庫:?使用JANUSEC應(yīng)用網(wǎng)關(guān)給內(nèi)部網(wǎng)站添加身份認(rèn)證

一些企業(yè)內(nèi)部管理網(wǎng)站,往往為了快速上線,沒有做身份認(rèn)證,這就給內(nèi)部數(shù)據(jù)泄露帶來了很大的風(fēng)險(xiǎn)。但是,要想修復(fù)這個(gè)問題,卻不是那么容易,有可能開發(fā)這個(gè)網(wǎng)站的同事早就轉(zhuǎn)崗或離職了。

為了解決這個(gè)問題,《數(shù)據(jù)安全架構(gòu)設(shè)計(jì)與實(shí)戰(zhàn)》一書提出了在應(yīng)用網(wǎng)關(guān)統(tǒng)一執(zhí)行身份認(rèn)證,并在后端限制訪問來源,快速解決這些沒有身份認(rèn)證的問題。

在接入網(wǎng)關(guān)上執(zhí)行身份認(rèn)證



現(xiàn)在,這一理念已在Janusec Application Gateway中落地,支持員工使用企業(yè)微信、釘釘、飛書 掃碼登錄原來可任意訪問的內(nèi)部網(wǎng)站了。

1 配置OAuth2

在Janusec Application Gateway的應(yīng)用配置界面,勾選啟用OAuth2選項(xiàng)。

具體配置,參考:OAuth2身份認(rèn)證

2 應(yīng)用如何獲取用戶身份

Janusec認(rèn)證通過后,會(huì)在HTTP請(qǐng)求的頭部添加兩行:

Authorization: Bearer Access-Token

X-Auth-User: UserID

應(yīng)用不需要修改即可使用,也可以通過X-Auth-User獲取用戶身份(企業(yè)微信/釘釘/飛書),或者借助Access-Token(企業(yè)微信/飛書)獲取進(jìn)一步的信息。

3 驗(yàn)證演示

以配置的某個(gè)PHP應(yīng)用下,放一個(gè)http.php文件,內(nèi)容為:

<?php

$headers =array();

foreach($_SERVERas$key => $value) {

? ? if('HTTP_'== substr($key,0,5)) {? ? ? ??

? ? ? ? $headers[str_replace('_','-', substr($key,5))] = $value;? ??

? ? }

}

echo'<pre>';

print_r($headers);

?>

在Janusec Application Gateway的應(yīng)用管理中,勾選"Enable OAuth2",啟用OAuth2 。

訪問該http.php頁面,瀏覽器自動(dòng)跳轉(zhuǎn)到掃碼登錄頁面,掃碼通過后,即可查看到該網(wǎng)頁的輸出:

Array

(

? ? [HOST] => test.janusec.com

? ? [USER-AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36

? ? [ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9

? ? [ACCEPT-ENCODING] => gzip, deflate, br

? ? [ACCEPT-LANGUAGE] => zh-CN,zh;q=0.9

? ? [AUTHORIZATION] => Bearer hmaEIdtA_EigLd0q6s1grFMuspVTCme8PEU4SkSeWJAv06Rg6u_PWUdU2g

? ? [COOKIE] => uqcJ_2132_saltkey=r55x3tp5; uqcJ_2132_lastvisit=1582979664; janusec-token=MTU4NTQ1Nzc3NnxEdi1CQkFFQ180SUFBUkFCRUFBQV9_

? ? [X-AUTH-USER] => U2

? ? [X-FORWARDED-FOR] => 192.168.100.1

)

可以看到,已添加HTTP頭部:

Authorization: Bearer hmaEIdtA_EigLd0q6s1grFMuspVTCme8PEU4SkSeWJAv06Rg6u_PWUdU2g

X-Auth-User: U2

后端的網(wǎng)站,可以不用任何修改,就獲得了需要通過身份認(rèn)證才能訪問的效果。

同時(shí),后端網(wǎng)站也可以直接使用HTTP頭部傳遞過來的身份信息。

4 退出OAuth2登錄

后端網(wǎng)站只需要添加一個(gè)退出鏈接 /oauth/logout ,即可實(shí)現(xiàn)退出效果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • OAuth2.0 是關(guān)于授權(quán)的開放網(wǎng)絡(luò)標(biāo)準(zhǔn),它允許用戶已第三方應(yīng)用獲取該用戶在某一網(wǎng)站的私密資源,而無需提供用戶名...
    baiyi閱讀 10,716評(píng)論 4 25
  • 以下是官網(wǎng)直譯:https://oauth.net/ 1. 首頁 OAuth是一種開放協(xié)議(注:協(xié)議是公開的,任何...
    JacoChan閱讀 11,789評(píng)論 0 20
  • Token(令牌)就是一個(gè)長的字符串,有了合法的令牌才被允許訪問服務(wù)器提供的接口。 在說明token之前,先看一下...
    mysimplebook閱讀 1,324評(píng)論 0 0
  • 又是新的一年 每年的跨年都有點(diǎn)戲劇性:去年是送人回家,在車庫度過一個(gè)晚上,也度過一個(gè)年頭。然后今年是為了去接喝醉的...
    羅境中閱讀 99評(píng)論 0 1
  • C語言基本程序框架 格式 scanf(格式控制%d%e,輸入項(xiàng)1,輸入項(xiàng)2,……); 說明 1.格式說明符與輸出語...
    慢神的茶閱讀 565評(píng)論 0 1

友情鏈接更多精彩內(nèi)容