[精讚] [會員登入]
471

雲端校務系統與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

你可能感興趣的文章

臺中市雲端校務系統與Windows AD帳號整合(5) 安裝java環境

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

ubuntu ufw ufw 簡易筆記 原則禁止,例外開放 ufw default deny 啟動ufw sudo ufw enable 關掉

在docker裡跑spring boot+mongo(一) 系統安裝docker ce centos7 + docker ce https://docs.docker.com/in

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

臺中市雲端校務系統與Windows AD帳號整合(9) 3-2 Linux上隨系統開機啟動服務 以Centos 7 發行版為例 請注意, 此時提供服務的主机為Linux, 所以

我有話要說

>>

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

訪客留言

[無留言]

隨機好文

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

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

刪除資料夾內的檔案 lambda 一行文 Arrays.stream(new File("/folder/path").

[scratch] 將角色物件放到清單中,並依序讀出每個角色的X值 將角色物件放到清單中,並依序讀出每個角色的X值

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