Presentation is loading. Please wait.

Presentation is loading. Please wait.

以學務系統的帳號密碼,實作LDAP整合校內網路服務

Similar presentations


Presentation on theme: "以學務系統的帳號密碼,實作LDAP整合校內網路服務"— Presentation transcript:

1 以學務系統的帳號密碼,實作LDAP整合校內網路服務
台中市立外埔國中資訊組長 郭特全 (04) #231 (辦公室) #236 (機房)

2 會前預習功課 What is LDAP ? dc cn ou ldif objectclass OpenLDAP phpldapadmin

3

4 LDAP server 運行環境 CentOS 6 OpenLDAP (LDAP server #yum…. )
httpd php (for phpldapadmin #yum) phpldapadmin (tool download,copy) php-ldap (important! #yum…) adodb5 (connect to sfs’s mysql DB download,copy /var/www/html/adodb5 )

5 先不急著執行我分享的php程式 用phpldapadmin先處理資料架構 網路上縱有片段程式,卻從沒提醒此點,最易卡關處。
概念類似資料庫,先建資料庫,再建資料表,再定欄位名稱,才能餵數據,否則雞同鴨講當然出錯。 哪些屬性 not null ? 哪些屬性自己想加?

6 假設已能成功進入phpldapadmin

7

8

9 程式重點講解:自動(加入排程)新增教職員LDAP帳號(autoaddldap.php)
搜尋學務系統在職帳號是否已在LDAP server中 若LDAP server找不到,新增此學務系統帳號到LDAP server include "/var/www/html/adodb5/adodb.inc.php"; $recordSet = $conn->Execute("select * from teacher_base where teach_condition='0'"); $ds=ldap_connect(" :389"); ldap_bind($ds,"cn=xxxxx,dc=xxxx,dc=xxxx","xxxxxxxx");

10 $info["objectclass"][0] = "top";
$info["objectclass"][1] = "posixAccount"; $info["objectclass"][2] = "inetOrgPerson"; $info["loginshell"] = "/bin/sh"; $info["gidnumber"] = "500"; $info["userpassword"] = “wpjh";

11 自動(加入排程)刪除教職員LDAP帳號(autodelldap.php)
逐一搜尋LDAP 中每一筆帳號,比對學務系統中的在職教職員帳號,若學務系統已不存在此帳號,則將LDAP 中相同帳號也刪除。

12 教職員為何需啟用LDAP帳號? (startldapform.php)
crontab 加入 autoaddldap.php 和autodelldap.php 是有達到帳號同步,但密碼卻是統一的預設值! md5演算法不可逆,透過啟用取得密碼原文 程式邏輯原理:使用者輸入帳密,密碼經與學務系統相同處理後,若與mysql內容相同,判定使用者為真合法使用者,並成功得到密碼原文,將LDAP的userpassword 作update。

13 啟用LDAP單一帳號頁面 (目的:得 password 明文)

14 心得: 只要LDAP相關設定就緒就可上線,當同仁無法登入相關服務時,就會迫使同仁去啟用,大概兩三天就可全部完成。

15 使用者自行變更LDAP密碼功能 (chpassword.php validate2.php)
注意事項:務必暫時停用學務系統原本的密碼變更模組。 why? 程式邏輯原理:透過表單userid和old_pw驗證使用者身分,若驗證通過,以新密碼同時update學務系統和LDAP server。

16

17 管理學生LDAP帳號(managestuldap.php addstuldap.php delstuldap.php )
為簡化操作程序,增減帳號對象都是某一年度入學全體學生 只取SFS的stud_base中stud_id(學號-帳號), stud_birthday(生日-密碼), stud_study_year (入學年度)欄位。 入學年度紀錄在LDAP中 description 我校為例,網頁操作建立2百多位學生LDAP帳號只要3秒鐘,刪除更快。

18

19 本校已整合進LDAP的項目: Joomla校網-1分鐘設定即連結LDAPserver

20 Fortigate-110C使用者認證

21 功用:1.避免學生網站不當內容,衍生法律責任。2.教職員網路硬碟多一層保護。

22 網路硬碟(本校稱雲端隨身碟)

23 成果綜合描述: 學務系統運作如舊,沒修改任何程式碼。 變更密碼才有 update 到 mysql 資料庫。
學務系統沒有真正連到 LDAP Server 認證 服務如Joomla網站前台、網路硬碟、Fortigate-110C使用者認證等,才導到 LDAP Server認證 一般使用者來說,好似整合地不錯! 能不能更好 ?

24

25 對SFS開發團隊的懇求與建議 前述小成果,純屬個人自high
真要造福資訊夥伴,享受單一帳號的便利性,有勞SFS開發團隊完成LDAP認證模組、學生LDAP管理模組。 參考本人的程式碼,約半日時間即能完成此兩個模組,可行性絕無問題,重點是大家能否看出LDAP的價值和長期在帳號管理所帶來的效益?

26 學務系統開發LDAP認證模組 伺服器名稱/IP位址 163.17.xxx.xxx 伺服器埠口 389 通用名稱標識 cn 可辨識名稱
ou=people,dc=wpjh,dc=edu 各校自行決定是否啟用,無強迫性。 $ds=ldap_connect(“ xxx.xxx:389"); $ldapbind=ldap_bind($ds,"cn={$_POST['User']},ou=people,dc=wpjh,dc=edu",$_POST['Upass']);

27 LDAP認證模組邏輯說明 可稍微修改文件中雲端隨身碟多重登入程式碼即可。
依SFS使用者驗證表單帳密,導至LDAP SERVER 驗證,若LDAP驗證不過則程式返回。 若LDAP驗證通過,從teach_base搜尋該帳號,teach_base若有找到該帳號但狀態非在職,則程式返回。

28 LDAP認證模組邏輯說明(cont.) LDAP驗證通過,teach_base找到該帳號且是在職狀態,則SESSION建立。
LDAP驗證通過,但teach_base找不到紀錄,用預設值自動寫入teach_base, SESSION建立

29 學務系統開發學生LDAP管理模組 學生LDAP參數設定 可參考addstuldap.php delstuldap.php
原程式帳號為學號五碼,密碼生日4碼,可改下拉選單彈性選擇 帳號欄位 下拉選單 密碼欄位 入學年度 文字輸入 新增 刪除 核取選單

30 簡報結束,感謝夥伴們指教!


Download ppt "以學務系統的帳號密碼,實作LDAP整合校內網路服務"

Similar presentations


Ads by Google