二 建置更改密碼服務
下載校端更改密碼程式: 連結
檢查是否安裝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
{ |
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 |
預設port是8080, 如果想指定不同的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 方能讓程式順利運作