1. 概述
1.1 版本
報表服務器版本 |
---|
10.0 |
1.2 應用場景
用戶在 LDAP 認證服務器存儲了較爲完整的員工信息,且已經使用它進行了多個線上系統的認證。
用戶需要在數據決策系統中使用同樣的認證方法,可在數據決策系統的「管理系統>用戶管理>全局設置」處開啓 LDAP 認證。
1.3 功能簡介
平台提供 LDAP 認證,用戶可按照本文方法在數據決策系統中設置 LDAP 認證。
LDAP 認證,用戶登錄時,平台将輸入的用戶名信息到設置的 LDAP 系統進行認證。
若 LDAP 系統認證失敗,則平台判斷認證失敗;
若 LDAP 系統認證成功,但是對應的用戶不存在於平台用戶中,則平台判斷認證失敗;
若 LDAP 系統認證成功,且對應的用戶存在於平台用戶中,則平台判斷認證成功,可進入平台,按照該用戶在平台中的權限進行相應操作。
注:超級管理員不受 LDAP 認證的影響,依舊使用平台内置認證。
2. 示例
2.1 配置 LDAP 認證
1)以管理員身份進入數據決策系統,點擊「管理系統>用戶管理>全局設置」,可選擇認證方式。如下圖所示:
2)認證方式選擇「LDAP 認證」,輸入各個參數,點擊「保存」按鈕,退出數據決策系統,需重新登錄。如下圖所示:
LDAP 認證時各參數項說明如下表所示:
參數項 | 說明 |
---|---|
URL | URL 是登錄 LDAP 服務器的入口,URL 由域名或 IP 與端口号組成,一般端口号默認爲 389。URL 格式爲: LDAP://域名或IP+端口号 |
檢索位置 | LDAP 是一個樹結構存儲數據的服務器,通過 URL 進入服務器,通過用戶、密碼驗證後,進行檢索相關登錄信息,「檢索位置」即存儲該登錄信息的位置
|
認證方式 | 指定 LDAP 目錄服務器所使用的認證類型,根據 LDAP 服務器的配置選擇,一般認證方式選擇「simple」
|
前後關系 | 初始上下文工廠的類名 一般選擇「com.sun.jndi.ldap.LdapCtxFactory」-對於基於 LDAP 服務器的目錄服務 |
轉診 | 根據 LDAP 服務器的配置選擇,一般選擇「ignore」 |
用戶名後綴 | 用戶名後綴可以添加也可以不添加,若添加,登錄時自動添加上相應的域名 例如 LDAP 服務器裏有個用戶叫Alice@fanruan.com,用戶名後綴設置爲@fanruan.com,登錄的時候用戶名輸入Alice即可 |
管理員名稱/密碼 | 此處管理員名稱并非指 LDAP 服務器的管理員名稱,而是指具有 LDAP 服務器檢索權限的用戶。通過該用戶進入 LDAP 服務器對檢索位置進行登錄信息檢索來實現認證。 通常這裏采用的是「域名/用戶名」的方式來進行識别。無論是 uid 或 cn 的方式都可以,但一般不使用 DN 域名的寫法
|
2.2 添加用戶
LDAP 服務器裏一般存儲着用戶的員工列表,想要其中的某用戶能在平台使用 LDAP 認證登錄,平台也需要添加一個同名用戶,因爲綁定郵箱、分配權限等平台操作都是以平台用戶爲作用對象的。
當平台裏的對應用戶存在時,可以認爲啓用 LDAP 認證只是将該平台用戶的密碼認證從默認的平台内置認證改成了 LDAP 服務器認證。
點擊「管理系統>用戶管理>添加用戶」,添加用戶「test001」,如下圖所示:
注1:LDAP 認證配置「添加用戶」時,不需要配置密碼。
注2:同步的用戶,導入/添加的用戶,可分别選擇不同的認證方式。
2.3 效果查看
若 LDAP 系統認證成功,且對應的用戶存在於平台用戶中,則平台判斷認證成功,可進入數據決策系統,按照該用戶在平台中的權限進行相應操作。如下圖所示:
注1:若在平台中不存在輸入的用戶名,或平台中對應的用戶被鎖定,則不與 LDAP 服務器進行通信,直接提示「用戶名或密碼錯誤」或「用戶不可用」。
注2:LDAP 服務器中存儲的用戶名,不可使用雙字節日語、繁體中文或朝鮮文字符。否則在平台登錄時提示「用戶名或密碼錯誤」。
LDAP 服務器中存儲的密碼,不可使用雙字節日語、繁體中文、簡體中文或朝鮮文字符。否則在平台登錄時提示「用戶名或密碼錯誤」。
3. 注意事項
3.1 測試 LDAP 連接成功
在數據決策系統中配置 LDAP 認證後,不能确定 LDAP 連接是否成功,執行本文 2.3 章節時,可能會出現用戶無法正常登錄或登錄緩慢的問題,可按照本章方法定位問題。
注:确保本地有 Java 環境。
1)下載右側壓縮包并解壓:LDAPDemo.zip
2)打開「LDAPDemo.java」文件,根據實際情況修改平台 LDAP 配置頁面的配置項,如下圖所示:
注:管理員名稱中若包含以下字符: '"', '+',',',';','<','>','\' ,在 LDAPDemo 中需要轉義。
例:用戶名爲 fanruan\admin,LDAPDemo 中需要輸入 fanruan\\admin。決策平台輸入無需轉義,直接輸入 fanruan\admin 即可。
3)切換到 LDAP 文件目錄下,執行:javac -encoding utf-8 LDAPDemo.java,生成一個LDAPDemo.class;
然後再執行:java LDAPDemo,如果返回的是測試成功,則表示 LDAP 認證正常,否則根據提示進一步定位問題。如下圖所示:
3.2 9.0 升級 10.0 後 LDAP 認證失敗
問題描述:
FineReport 由 9.0 升級到 10.0 之後,用戶使用 LDAP 認證登錄失敗,登錄頁面顯示報錯信息username does not exist
原因分析:
9.0 升級到 10.0 後 LDAP 登錄認證邏輯發生了改變。
以用戶名 User,LDAP 認證後綴 fr.com 爲例對認證邏輯進行分析:
FineReport 9.0:首先将用戶名 User 加上後綴 fr.com 檢索平台是否存在該用戶,然後進行 LDAP 認證流程。
FineReport 10.0:首先根據用戶名 User 檢索是否存在該用戶,然後再加上後綴 fr.com 進行LDAP認證流程。
解決方案:
方案一:将用戶管理下 LDAP 配置頁面的用戶名後綴去掉不用,用戶使用用戶名@後綴名即可正常登錄。
方案二:将每個用戶的用戶後綴名都去掉,用戶使用用戶名即可正常登錄。