臺中市雲端校務系統與Windows AD帳號整合(3)

URL Link //n.sfs.tw/13263

2019-04-28 15:51:03 By igogo

 

1-2 LDAP的基本概念

 

1. 決定根:這裡以快樂國小為例

happy.tc.edu.tw 是網域名稱, 樹系由根開始可能長這樣

 

dc=happy,dc=tc,dc=edu,dc=tw

 

Directory Information Tree(DIT)

 

 

為了方便後續操作, 我們借助另一套可以在windows上執行的LDAP client 工具來管理 – LDAP Admin

 

http://www.ldapadmin.org/

 

 

 

下載並解壓縮. 執行如下圖示

 

 

 

先建一個沒有加密的看是否能成功連結

 

Start → Connect → New Connection

 

 

 

從前面執行 ldp連結成功的訊息裡把 DC=happy,DC=tc,DC=edu,DC=tw 填入Base

 

使用管理者的帳密登入, 在命令提示字元中查詢系統管理者的DN

C:\Users\Administrator>dsquery user -name administrator

"CN=Administrator,CN=Users,DC=happy,DC=tc,DC=edu,DC=tw"

 

 

 

OK, 再執行連結

 

 

成功畫面如下

 

 

View→ Show Values 打勾

 

點選CN=Users 裡的 CN=Administrator

 

 

CN=Administrator 視為一筆Entry, 並且帶有很多的屬性值, 例如

 

cn: cn 值為Administrator

 

dn: 組成distinguishedName的值則是由cn值及隸屬於OU=Users,及前面我們決定的樹系的根名稱, 使得dn值為 CN=Administrator,CN=Users,DC=happy,DC=tc,DC=edu,DC=tw

 

A distinguished name (usually just shortened to “DN”) uniquely identifies an entry and describes its position in the DIT.

https://ldap.com/ldap-dns-and-rdns/

 

dn值是每一筆記錄的唯一識別值, 以本台LDAP server ,

樹系的根為 DC=happy,DC=tc,DC=edu,DC=tw ,是此網域的base dn

 

 

 

 

如果我們由AD新增一名身分為Student, 帳號為107-10701 的使用者

新建一名為Student 的組單位, 新增連絡人

 

 

 

新建使用者成功後, 使用ldap admin 點選根後按重新整理或重新連線

 

 

 

由上圖可以看出此使用者的屬性值

 

cn 值為 107-10701

 

dn值的屬性名稱是 distinguishedName , 值為

CN=107-10701,OU=Student,DC=happy,DC=tc,DC=edu,DC=tw

 

 

 

這裡要注意 DN值的最左邊 CN=107-10701 是由cn 值取來的, 兩個必須一致

 

如果我們在新增資料時, 全名寫入王小明, cn值為王小明

dn值也會隨之表示為 CN=王小明,OU=Student,DC=happy,DC=tc,DC=edu,DC=tw

 

考量往後Windows AD可做為LDAP server做其它服務的驗證,底下幾個屬性性建議使用同一個帳號管理

 

cn: DN值有連動

 

sAMAccountName: 為網域登入用帳號 例如 HAPPY\ 107-10701

 

https://docs.microsoft.com/en-us/windows/desktop/ad/naming-properties#samaccountname

 

 

userPrincipalName: 107-10701@happy.tc.edu.tw 為 帳號加上@及網域名域

 

使用者帳戶名稱 (有時稱為使用者登入名稱) 和識別使用者帳戶所在網域的網域名稱。 這是登入 Windows 網域時的標準用法。 格式為: someone@example.com (如同電子郵件地址)。

https://docs.microsoft.com/zh-tw/dotnet/framework/configure-apps/file-schema/wcf/userprincipalname

 

 

上面所提三個屬性值建議使用同一帳號表示, 如果要寫入使用者中文姓名 ,則寫在 displayName