1. 概述
1.1 應用場景
一個企業的職工人數是相當多的,並且由於人員的流動性,使用者資訊一直在變化,如果每次都透過手動新增修改,工作量將會非常大。
FineDataLink 使用者同步資料集功能可以實現動態更新平台中的使用者資訊,使之隨着資料庫中的使用者資訊一起變化。
1.2 功能簡介
管理者可以先建立伺服器資料集,設定定期從資料集同步使用者,保持使用者資訊即時更新。
1.3 注意事項
1)若設定了同步使用者,請勿輕易取消同步/調整同步資料源。因為角色使用者中間關係資料不會軟刪除,且無法恢復!!!
2)同步使用者時一些注意事項及報錯請參見:使用者同步時報錯整理
2. 準備使用者資料
3. 首次同步使用者更新設定
注1:本章是針對「之前從未進行過同步使用者」、「同步使用者未開啟狀態下執行首次同步操作」的資料更新規則。
若之前同步過使用者,在同步使用者開啟狀態下執行非首次同步操作將不會出現此節提示彈窗,也不會按照此節中更新規則進行同步。
注2:同步的使用者與「手動新增/匯入的使用者」可並存。
管理者登入FineDataLink 系統,點選「管理系統>使用者管理>所有使用者」,點選「同步使用者」。
跳出提示框「是否保留現有非同步資料,包括匯入/新增的使用者、部門職務、角色」,如下圖所示:
不同選擇對應的更新邏輯如下:
選擇 | 定義 |
---|---|
保留 | 如果現有使用者不在同步的伺服器資料集中,該使用者資訊和權限將被保留,不修改 如果現有使用者在伺服器資料集中(帳號相同):
|
清空 | 平台現有「手動新增/匯入的使用者」的帳號、姓名、密碼、手機、信箱、部門、職務、角色、權限均被刪除,重新同步使用者 |
注:根據選擇的更新邏輯,首次同步後有部分使用者資訊被更新。
之後能被自動更新的只有已變為同步類型的使用者。
之後的同步,資料集不能再改寫更新內建資料,否則將衝突報錯。
4. 配置同步使用者
配置同步資料集資訊,如下圖所示:
4.1 同步頻率
支援透過兩種方式執行同步使用者操作:簡單重複執行、運算式設定。
4.1.1 簡單重複執行
從伺服器資料集中自動同步使用者的間隔時間,預設為 43200 秒。
同步使用者設定了同步頻率,可自動進行多次同步,到達設定頻率後自動進行同步,不斷把伺服器資料集中變化的資料同步到平台。
注:同步頻率不宜過高,否則會導致後台日誌不斷重新整理,日誌體積無限膨脹。
4.1.2 運算式設定
支援透過 Cron 運算式設定任務執行的時間點,該任務可以是每天重複執行,隔日重複執行或者是單次執行等等各種不同組合的觸發時間點。
Cron 運算式的文法和寫法請參見:Cron 運算式
4.2 使用者可編輯
「使用者可編輯」按鈕,該按鈕預設不勾選,勾選後,同步狀態下使用者資訊可編輯。
使用者可編輯姓名、密碼、手機、信箱,可使用 忘記密碼 功能,已存在使用者的以上欄位在自動同步/手動同步時將不再更新。具體功能如下表所示:
注1:密碼策略設定 對同步使用者生效。
注2:若未勾選「使用者可編輯」按鈕,但使用「忘記密碼」功能,在修改密碼時會出現提示:您的帳號無法修改密碼,如有疑問請聯絡管理者。
使用者身分 | 說明 |
---|---|
超級管理者 | 1)再次同步時,平台現存使用者的姓名、密碼、手機、信箱欄位將不再更新 2)可編輯平台現存使用者的姓名、手機、信箱、密碼,不可編輯角色 3)超管可在「帳號設定」處編輯姓名、密碼、手機、信箱 4)可在登入頁使用 忘記密碼 功能 |
次級管理者 | 1)可修改有權限使用者的姓名、手機、信箱、密碼,不可編輯角色 2)可在登入頁使用 忘記密碼 功能 3)次管可在「帳號設定」處編輯姓名、密碼、手機、信箱 |
普通使用者 | 1)同步使用者可在「帳號設定」處編輯姓名、密碼、手機、信箱 2)可在登入頁使用 忘記密碼 功能 |
4.3 使用者來源
選擇使用者資訊對應的來源。
1)伺服器資料集
同步使用者的來源可以是當前同步的這個伺服器資料集,不支援從多個伺服器資料集中同時同步。切換伺服器資料集後,清空之前同步資訊。
同步成功後,不支援修改同步使用者所屬同步部門職務、同步角色資訊,只能在伺服器資料集中修改。
2)從LDAP伺服器中同步
若同步使用者的認證方式選擇了「LDAP認證」,透過安裝「同步LDAP域使用者」插件,在進行同步使用者設定的時候,可以直接選擇「從LDAP伺服器中同步」。
詳情請參見:同步LDAP域使用者
3)從企業微信同步
使用者配置了「微信管理」插件的「成員管理」後,可在使用者來源選擇「從企業微信同步」使用者資訊。選擇要同步的企業微信應用即可。
注:在「微信管理>成員管理」設定通訊錄「立即更新」或設定定時「自動更新」,都會發生使用者同步。
詳情請參見:企業微信整合
4)從釘釘同步
使用者配置了「釘釘管理」插件的「成員管理」後,可在使用者來源選擇「從釘釘同步」使用者資訊。選擇要同步的釘釘應用,即可。
注:在「釘釘管理>成員管理」設定通訊錄「立即更新」或設定定時「自動更新」,都會發生使用者同步。
詳情請參見:釘釘管理插件
4.4 使用者重複驗證欄位
為了防止同名使用者/不同部門下的同名職務,帆軟提供「使用者重複驗證欄位」功能。
「重複驗證欄位」包含兩種驗證方式:名稱和 ID 。
1)使用者資訊儲存位置
注:使用者資訊儲存在 FineDB 表結構 中。
欄位資訊 | 所在表 |
---|---|
使用者ID、帳號 | fine_user |
職務ID、職務名稱 | fine_post |
部門ID、部門名稱 | fine_department |
角色ID、角色名稱 | fine_custom_role |
2)具體說明
重複驗證欄位 | 邏輯 | 場景 | 備註 |
---|---|---|---|
使用者ID 部門ID 職務ID 角色ID | 若選擇 ID,則同步「ID+名稱」欄位,所在表中的 ID 欄位值為同步使用者時伺服器資料集中的 ID | 如果資料集中某 ID 對應的帳號發生修改,平台中帳號也會跟着修改,權限也會被繼承。部門,職位,角色同理 | 非樹資料集中,若重複驗證欄位選擇 ID ,那麼職務的 ID 、名稱都必須是一對一且唯一不重複的關係,同一 ID 對應多個名稱 、同一名稱對應多個 ID 都不允許。使用者,部門,角色同理 樹資料集中,使用者、職務、角色的名稱與 ID 必須是一對一且唯一不重複的關係 注:前台看不到職務ID,只透過職務名稱來區分、配置權限等。如果出現同一部門下兩個不同id職務同名的情況,將無法區分和配置權限。故直接要求兩者都必須唯一 且 一一對應的關係,不滿足則直接同步失敗 |
帳號 部門名稱 職務名稱 角色名稱 | 若選擇名稱,則同步「名稱」欄位,所在表中的 ID 欄位值將由系統隨機生成 | 如果修改資料集中某使用者的帳號,平台中帳號也會跟着修改,所對應使用者 ID 由系統隨機生成,新帳號的使用者會丟失之前單獨為該使用者配置的權限。同理,部門,職位,角色則會丟失繼承自部門/職務/角色的權限 | 若重複驗證欄位選擇職務名稱,那麼資料源中名稱相同但 ID 不同的職務會作為一個職務看待,若同一部門下有兩個名稱為「財務」的不同職務,會直接顯示為同一個職務,其下使用者也會合並顯示 但如果兩個「財務」屬於不同部門,則雖算作一個職務,但因部門-職務關係的不同,其下使用者不會合併在一起顯示。使用者,部門,角色同理 |
4.5 欄位名稱
帳號、姓名、密碼、部門名稱、職務名稱、角色名稱、手機、信箱為對應伺服器資料集中的欄位名稱。
注1:信箱支援包含符號‘#’和‘&’。
注2:支援僅配置部門,不配置職務。
4.6 加密方式
有兩種加密方式,「內建 SHA 加密」和「自訂密碼加密」。
1)內建 SHA 加密
適用場景:同步的伺服器資料集中的密碼為明文時,選擇內建 SHA 加密
加密簡介:系統採用 SHA256 加密方式,以保證密碼安全。使用者透過API自訂修改密碼後,會自動進行 SHA256 加密。
登入密碼:登入密碼即為本文第二節使用者資訊表中的密碼,非 fine_user使用者表 中加密的密碼。
2)自訂密碼加密
適用場景:同步的伺服器資料集中的密碼為自訂加密後的密文,則必須使用自訂加密。
加密簡介:自訂密碼加密,即自訂一個密碼加密類。
加密方式在類中描述,並儲存在%Home%\webapps\webroot\WEB-INF\classes資料夾中。
數據決策系統會在使用者自訂加密算法的基礎上再進行 SHA256 二次加密,以保證密碼安全。
登入密碼:登入密碼為伺服器資料集的密文解密之後的明文
注1:自訂加密範例詳情參見:同步用户密码加密设置 。
注2:自訂加密算法,必須繼承 AbstractPasswordValidator 類。
注3:若勾選了「使用者可編輯」,且設定了加密方式,儲存成功後,再次取代加密方式,FineDB 中的密文無法同步取代,使用者將無法成功登入。
注4:修改同步使用者加密方式後無需重啟工程,立即生效。
4.7 使用者禁用狀態
方便管理者透過同步使用者資料管理使用者狀態,非必填項。
若需要使用該設定項,在第二章的資料源中新增一個欄位,欄位值為0/1。
0:禁用使用者
1:啟動使用者
1)若不配置該設定項,同步使用者的啟動/禁用可從平台手動配置。
2)若配置該設定項,同步使用者的啟動/禁用完全取決於資料源,不支援從平台手動配置。
注:手動新增的使用者仍可透過平台配置啟動/禁用狀態,不受影響。
5. 同步使用者管理
同步完成後,同步使用者管理按鈕處,會新增多個下拉選項,如下圖所示:
5.1 立即同步
點選後立即進行一次使用者資料集同步。
5.2 編輯
開啟同步使用者對話框,可修改同步使用者資料集配置。
若未開啟 4.2 節「使用者可編輯」設定,支援管理者「禁用使用者」,不支援「編輯使用者」和「刪除使用者」。
若開啟了 4.2 節「使用者可編輯」設定,支援管理者「禁用使用者」和「編輯使用者」,不支援「刪除使用者」。
注:禁用、編輯、刪除使用者的操作,請參見 新增使用者 第 3、4、5 章
5.3 清空同步資料
「清空同步資料」按鈕,支援一鍵取消同步使用者。
清空同步資料將刪除所有同步的使用者、部門職務、角色、相關權限,且不再繼續同步,恢復未同步的狀態。
5.4 異常資料中斷同步
同步使用者高度依賴資料源,若資料源出現問題,例如被惡意清空資料庫表,會導致同步到系統中的使用者被清空,操作無法逆轉。
因此 FineDataLink 提供同步熔斷策略,新增「異常資料中斷同步」按鈕。
管理者開啟「異常資料中斷同步」後,可設定使用者數量減少達到X%,停止同步。X為1-100的正整數。
例如系統中原有100個同步使用者(不包含手動新增/匯入的使用者數),設定為30%,即同步減少30(100*30%)個使用者及以上,就會停止本次同步。
同步失敗的提醒如下圖所示:
失敗提醒:21300031 - 本次同步使用者數量將減少XX%(XX個),達到設定的中斷值XX%。請檢查資料源資料是否正常,或暫時關閉"異常資料中斷同步"功能。
5.5 下次同步時間
系統會根據 4.1 節設定的「同步頻率」,提醒管理者下次自動同步的時間。
6. 同步失敗提醒
在同步使用者程式中,可能會因為衝突出錯,導致部分或全部使用者、部門、職務、角色資料同步失敗,帶來權限沒有更新。
以上情況需要即時通知到對應的管理者,因此 FineDataLink 提供「同步失敗提醒」功能。
6.1 設定方法
管理者登入數據決策系統,點選「管理系統>使用者管理>全局設定」,配置同步失敗提醒推播的接收人,點選「儲存」,如下圖所示:
注1:使用簡訊提醒之前需要先開通簡訊服務,開通方法參見文檔:簡訊 。
注2:使用郵件提醒之前需要先配置信箱,具體步驟請參見:郵箱 。
6.2 效果預覽
系統會在「第一次」手動同步/自動同步失敗後,給管理者傳送簡訊/郵件/平台提醒。直到下一次同步成功為止,之後再同步失敗才會再次傳送提醒。
注:若多次連續同步失敗,只會在「第一次同步失敗」傳送提醒訊息。
直到出現「同步成功/重啟工程/關閉同步使用者」的情況,才會重置提醒監視狀態。
之後再次出現同步失敗才會再次傳送提醒。
1)簡訊提醒
2)平台訊息
3)郵件提醒