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

URL Link //n.sfs.tw/13277

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開始

 

 

下一部份 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": ""

}

 

 

 

 

至此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