[精讚] [會員登入]
872

雲端校務系統與OPENLDAP帳號整合(3)

二 建置更改密碼服務 下載校端更改密碼程式: 連結 檢查是否安裝java 8 #java -version 安裝open

分享此文連結 //n.sfs.tw/13277

分享連結 雲端校務系統與OPENLDAP帳號整合(3) @igogo
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-09-15 15:24:55 最後編修
2019-05-05 16:49:45 By igogo
 

 

二 建置更改密碼服務

 

下載校端更改密碼程式: 連結

 

 

 

檢查是否安裝java

 

 

 

#java -version

 

安裝openjdk 11

#sudo  apt install openjdk-11-jdk

 

 

 

編輯config.json

{

 

"clientid": "clientid",

"secret": "secret",

"ldap":"ldap.json",

"authorize_endpoint": "http://api.cloudschool.tw/school-oauth/authorize",

"accesstoken_endpoint": "http://api.cloudschool.tw/oauth?authorize",

"changepasswd_endpoint": "http://api.cloudschool.tw/change-password",

"semesterdata_endpoint" : "http://api.cloudschool.tw/semester-data"

}

 

ldap.json 即將ldap設定指向同文件夾裡的檔名

 

編輯ldap.json

{
"ldap_server": "127.0.0.1",
"ldap_port": 389,
"rootdn": "cn=admin,dc=happy,dc=tc,dc=edu,dc=tw",
"passwd": "topsecret",
"basedn": "dc=happy,dc=tc,dc=edu,dc=tw",
"rdn": "uid",
"uidnumber": 5000,
"role": [{
"ou": "teacher",
"gid": 5000,
"home": "/home/teacher"
},
{
"ou": "student",
"gid": 5001,
"home": "/home/student"
}
],
"sambaobjectclass" : "sambaSamAccount",
"sid" : "S-1-5-21-2183872810-781909459-436610516"
}

 

 

uidNumber 為新增使用者的起始uidnumber, 5000開始

 

  • 依校務雲端傳回的資料角色別有teacher student 兩個群組, 因此ou應命名為student, teacher

 

下一部份 SAMBA+LDAP 才會用到以下設定

如果只想提供LDAP SERVER 而不需要SAMBA, 保留格式如下

 

"objectclass" : "",

"sid" : ""

 

 

LDAP 若只想新增特定角色, 例如只新增雲校校務系統帶進來的角色別是teacher

 

ldap.json

{

"ldap_server": "127.0.0.1",

"ldap_port": 389,

"rootdn": "cn=admin,dc=happy,dc=tc,dc=edu,dc=tw",

"passwd": "topsecret",

"basedn": "dc=happy,dc=tc,dc=edu,dc=tw",

"rdn": "uid",

"uidnumber": 5000,

"identity": "uid",

"role": [{

"ou": "teacher",

"gid": 5000,

"home": "/home/teacher"

}],

"sambaobjectclass": "",

"sid": ""

}

 

 

 

  • 如果是學生身分, homeDirectory 的設定會再加上學年 例如 /home/student/107/107-10701, 取的學年值是根據雲端校務系統中學生帳號裡的前三碼決定

 

至此LDAP 結合校端更改密碼服務設定已完成

可直接執行校端更改密碼服務

 

 

#java -jar passwd.jar

 

預設port8080, 如果想指定不同的port, 例如80

 

#java -Djava.net.preferIPv4Stack=true -Dserver.port=80 -jar passwd.jar

 

 

建置過程中, 可先利用一測試帳號反覆進行, 茲提供刪除指令

 

 

刪除使用者

 

 

# ldapdelete -D "cn=admin,dc=happy,dc=tc,dc=edu,dc=tw" -W uid=t0001,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw

 

  • 請記得留一筆使用者資料, 校端更改密碼服務能成功找到objectClass:posixAccount 屬性值uidNumber 方能讓程式順利運作

 

 

END

你可能感興趣的文章

mongo備份指令 mongodump --host localhost --port 27017 --username root --db

使用expect及 openssl 產生SSL 憑證簽署要求 每年都要製做tls 憑證 二十幾張, 此語法利用expect 產生私錀及憑證請求檔 #!/usr/bin/expect

對照mac address 批次更改電腦名稱 讀取mac address 對照表, 還原電腦後,自動更改密碼 'show logged on user Dim

windows ad 如何得知 dn 值 如何得知 windows ad 上的使用者dn 值 https://support.symantec.com/en_US

台中市網路應用競賽試場安排(一) 排試場就跟排班或是排課表一樣, 找不到一個都能讓所有人滿意的結果

[web]校園食材登錄平臺午餐食材嵌入頁面語法 校園食材登錄平臺午餐食材嵌入頁面語法

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

2018 hoc 頒獎 校慶到了,啦啦隊比賽如火如荼展開,學務主任將頒發獎狀給表現優異的班級。請完成以下程式碼,讓程式將啦啦隊表演成績由高至低依序輸出。

臺中市雲端校務系統與Windows AD帳號整合(3) LDAP的基本概念

scratch 不重覆隨機取陣列值 隨機取數是在設計遊戲時, 很常用到的技巧 最簡單的就是使用運算積木裡的隨機取數範圍 但是, 如果我是想全部取出且不重覆,

[web]空氣品質嵌入頁面語法 空氣品質, aqi, ajax

使用poi 解析 docx 原先是想解析出在docx 中的文字跟圖片, 但是, 有些我們認為是圖片, 其實是用方程式表示, 實在是太麻煩了 就記錄一