1. 概述
1.1 版本
FineBI伺服器版本 | 功能變更 |
---|---|
6.0 | - |
1.2 應用場景
使用者不想使用平台內建認證,想要自訂認證。例如使用者整合單張範本到自己的系統,想要自己控制認證。
1.3 功能簡介
HTTP 認證開啟後,平台會把輸入帳號密碼加密後傳送到 HTTP 認證伺服器,HTTP 認證伺服器根據自訂邏輯認證完成後,將認證結果傳回給平台。
注:超級管理者不受 HTTP 認證的影響,依舊使用平台內建認證。
2. 透過 Node 實現認證
2.1 下載認證檔案
1)點選下載:http-authentication.zip
2)將下載後的壓縮包解壓,儲存到本地目錄,例如E:\HTTP。如下圖所示:
在http-authentication\node\auth.js檔案中,可看到 HTTP 認證方式,如下圖所示:
本章認證透過的邏輯為:帳號與密碼相同,才可以正常登入平台系統。
使用者可在 auth.js 的if (content.username === content.password)處,根據實際需求修改該預設認證邏輯。
2.2 啟動伺服器
開啟命令提示符,輸入下面命令來啟動伺服器:
1)需要先安裝 npm ,安裝程式這裏不再詳細介紹。
2)進入到http-authentication\node路徑下:
注:下面命令進入的是E:\HTTP\http-authentication\node路徑,使用者根據實際情況進入到解壓檔案存放的路徑即可。
e:
cd E:\HTTP\http-authentication\node
3)安裝依賴
npm install
4)生成 publickey 和 privatekey,生成的 key 會匯出到 key.txt :
npm run key
5)啟動伺服器。 前兩條命令只需在第一次初始化時需要,以後啟動直接 npm start 即可:
npm start
認證地址為:http://0.0.0.0:3000/
2.3 獲取公用鍵
伺服器啟動成功後,開啟 Node 資料夾下的 key.txt,複製公用鍵,如下圖所示:
2.4 決策平台開啟 HTTP 認證
管理者進入數據決策系統,點選「管理系統>使用者管理>全局設定」,選擇「HTTP認證」,輸入認證地址和公用鍵,點選「儲存」。如下圖所示:
注:Http 認證選項不需要密碼一項,因此在手動新增使用者或者同步資料集匯入使用者時,都沒有密碼一項。
2.5 效果查看
點選「儲存」後,提示登入資訊失效,重新登入FineBI系統。
在登入頁輸入平台「使用者管理」中已經存在的帳號,密碼和帳號相同,登入成功;當密碼和帳號不相同時,登入失敗。
3. 透過 Java 實現認證
本章兩種方法認證透過的邏輯為:帳號與密碼相同,才可以正常登入平台系統。
3.1 方法一:透過原始碼工程運作
3.1.1 下載認證檔案
下載並解壓檔案:http-authentication-java.zip
3.1.2 運作工程
使用 IDEA 或 Eclipse 開啟 pom.xml 檔案,即開啟工程,然後運作 WebServerMain,如下圖所示:
3.1.3 複製公用鍵
伺服器啟動成功後,開啟編譯目錄(target)下的 key.txt,複製 publickey 到決策平台中,伺服器地址為:http://0.0.0.0:9090/,如下圖所示:
注:如改變 key.txt,則運作 KeyGeneratorMain,再將編譯目錄(target)下的 key.txt,複製 publicKey 到決策平台中。
3.1.4 效果查看
點選「儲存」後,提示登入資訊失效,重新登入平台。
在登入頁輸入平台「使用者管理」中已經存在的帳號,密碼和帳號相同,登入成功;當密碼和帳號不相同時,登入失敗。
3.2 方法二:命令行運作
3.2.1 下載檔案
1)點選下載 JAR 包:http-authentication-java.jar
2)將下載後的 JAR 檔案使用 WinRAR 解壓到某個資料夾,如下圖所示:
注:解壓後的檔案所在路徑不要有中文和空格。
3.2.2 運作檔案
命令行進入解壓檔案所在路徑,輸入java WebServerMain啟動伺服器,如下圖所示:
注:確定本地有 Java 環境。
3.2.3 複製公用鍵
1)伺服器啟動成功後,開啟 key.txt,複製 publickey ,如下圖所示:
2)將複製的 publickey 貼上到平台,伺服器地址為:http://0.0.0.0:9090/,如下圖所示:
3.2.4 效果查看
點選「儲存」後,提示登入資訊失效,重新登入平台。
在登入頁輸入平台「使用者管理」中已經存在的帳號,密碼和帳號相同,登入成功;當密碼和帳號不相同時,登入失敗。