[精讚] [會員登入]
794

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

openldap,雲端校務

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

分享連結 雲端校務系統與OPENLDAP帳號整合(2) @igogo
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-24 11:38:26 最後編修
2019-05-05 16:42:11 By igogo
 

 

LDAP操作
 

樹系是否存在

查詢

 

root@smbldap:~# ldapsearch -x -LLL -H ldap:/// -b dc=happy,dc=tc,dc=edu,dc=tw

dn: dc=happy,dc=tc,dc=edu,dc=tw

objectClass: top

objectClass: dcObject

objectClass: organization

o: happy

dc: happy

 

dn: cn=admin,dc=happy,dc=tc,dc=edu,dc=tw

objectClass: simpleSecurityObject

objectClass: organizationalRole

cn: admin

description: LDAP administrator

 

1. dc=happy,dc=tc,dc=edu,dc=tw 是整個樹的根(DIT)

2. cn=admin,dc=happy,dc=tc,dc=edu,dc=tw 為管理者

 

 

二 增加節點

產生一個 add_content.ldif

這裡將快樂國小成員依校務雲端傳回的資料分成teacher student 兩個群組

 

dn: ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: organizationalUnit
ou: teacher

dn: ou=student,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: organizationalUnit
ou: student

dn: cn=teacher,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: posixGroup
cn: teacher
gidNumber: 5000

dn: cn=student,ou=student,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: posixGroup
cn: student
gidNumber: 5001

 

 

uidNumber gidNumber 不可與本机的userid groupid 重覆, 因此建議設定大一點的範圍值

例如 gidNumber , uidNumber都從5000開始

 

 

如果此机器規劃只提供新增特定角色, 例如只新增teacher

add_content.ldif

dn: ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: organizationalUnit
ou: teacher


dn: cn=teacher,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
objectClass: posixGroup
cn: teacher
gidNumber: 5000

 

新增上述內容

 

root@smbldap:~# ldapadd -x -D cn=admin,dc=happy,dc=tc,dc=edu,dc=tw -W -f add_content.ldif
Enter LDAP Password:
adding new entry "ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw"

adding new entry "ou=student,dc=happy,dc=tc,dc=edu,dc=tw"

adding new entry "cn=teachers,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw"

adding new entry "cn=students,ou=student,dc=happy,dc=tc,dc=edu,dc=tw"

 

 

可以使用 ldapsearch 查詢看看

 

root@smbldap:~# ldapsearch -x -LLL -b dc=happy,dc=tc,dc=edu,dc=tw ou gidNumber
dn: dc=happy,dc=tc,dc=edu,dc=tw

dn: cn=admin,dc=happy,dc=tc,dc=edu,dc=tw

dn: ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
ou: teacher

dn: ou=student,dc=happy,dc=tc,dc=edu,dc=tw
ou: student

dn: cn=teachers,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw
gidNumber: 5000

dn: cn=students,ou=student,dc=happy,dc=tc,dc=edu,dc=tw
gidNumber: 5001

 

 

新增一名user

 

此使用者可以是雲端校務系統裡的帳號, 或是任意新增帳號

LDAP server 主机裡一定要有至少一筆資料, 方便讓程式判斷uidNumber

 

會用到的 objectclass :

 

 

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

 

 

先使用slappasswd產生一組密碼

 

 

# slappasswd -h {SSHA} -s 123456

{SSHA}NT1Eso7pVbeqRqgwZsvTDYmgAxJ+pQcv

 

 

add_user.ldif

dn: uid=igogo,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw

uid: igogo

uidNumber: 5000

homeDirectory: /home/teacher/igogo

displayName: 愛狗狗

gidNumber: 5000

cn: igogo

sn: igogo

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

userPassword: {SSHA}NT1Eso7pVbeqRqgwZsvTDYmgAxJ+pQcv

 

 

 

 

# ldapadd -x -D cn=admin,dc=happy,dc=tc,dc=edu,dc=tw -W -f add_user.ldif

 

 

 

查詢

 

# ldapsearch -x -LLL -b ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw objectClass uidNumber gidNumber

dn: ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw

objectClass: organizationalUnit

 

dn: uid=igogo,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw

uidNumber: 5000

gidNumber: 5000

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: shadowAccount

 

dn: cn=teacher,ou=teacher,dc=happy,dc=tc,dc=edu,dc=tw

objectClass: posixGroup

gidNumber: 5000

 

 

接下來自動新增使用者及同步密碼就交給校端更改密碼服務處理

 

 

 

END

你可能感興趣的文章

臺中市雲端校務系統與Windows AD帳號整合(4) 雲端校務系統與Windows AD的架構

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

shell scirpt 批次建立samba使用者 建立一csv檔, 兩個欄位如下 5101,532 5102,592 5103,321 第一欄為帳號使用班級加座號, 第二

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

利用openssl 一行文產生私鑰及憑證請求檔 openssl 一行產生私鑰及憑證請求檔

使用expect 讀取外部資料存成陣列 使用expect 讀取外部資料存成陣列

隨機好文

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

Arrays.asList 後想再add出現 UnsupportedOperationException 這個問題真是搞死我了 List<String> fruits = Arrays.asList("a

臺中市雲端校務系統與Windows AD帳號整合(7) 設定校端更改密碼程式及執行

在docker裡跑spring boot+mongo(二) 使用docker-compose 管理多個container 前篇使用docker run 一次建一個container

將google試算表當作簡易資料庫,利用Google apps cript 在網頁上操作查詢 將google試算表當作簡易資料庫,利用apps cript 在網頁上操作查詢 若我有一試算表資料 縣市 status