worpress (docker) 連接 Active Directory(ldap)

我為了要測試教育訓練相關外掛程式「LearnPress」,必須先搞定員工能登入網站「上課」這件事。

參考以往經驗,我選擇在wordpress系統,安裝教育訓練外掛,而不使用moodle這類風評好又完全免費的系統,原因在於moodle太龐大了,很難駕馭;反之,wordpress可當作公司內部公告網站,讓平時員工習慣上此網站,也趁此加裝教育訓練模組,員工比較容接觸而上課。

wordpress系統要能連上網域主控站,才可讓員工登入,我找到的外掛為next-active-directory-integration

搜尋以下外掛且安裝完畢,於外掛啟用之前,容器必須安裝相關套件,才能正確連線,否則會出現錯誤。

docker exec -it wordpress_wordpress_1 /bin/bash
#####
apt-get update
apt-get install -y libldap2-dev
docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/
docker-php-ext-install ldap
rm -rf /var/lib/apt/lists/*
apt-get purge -y --auto-remove libldap2-dev
/etc/init.d/apache2 restart

#http://www.jaqb.gda.pl/eng/Community/Blog/Enable-LDAP-support-in-Docker-image-of-Wordpress

進容器安裝相關套件後,就可以啟用外掛,通知使用者輸入「帳號@域名」 就可以登入了。

至於ldap設定部分我就不多說,請自行依情況處理。

NTPWEdit可解主機"此工作站和主要網域間的信任關係失敗"

這個我也不知道怎回事, 反正解法是想辦法用本地端帳號登入, 用NTPWEdit(點此下載)這款軟件, 搭配優啟通, 或是 usbox 開機碟製作工具, 先做出開機碟再開機->執行 NTPWEdit->選擇 C:\WINDOWS\SYSTEM32\CONFIG\SAM 改掉裡面本機帳號之密碼, 重開就可以本機帳號登入,

登入後, 先退出網域, 再重新加入網域, 就可以挽回網域主控站的心, 重新認可這台主機了

outlook 關於ldap通訊錄的處理經驗

公司是小公司, 所以我都自架郵件伺服器, 使用postfix mail server + 微軟的網域主控站做認證.

同事的通訊錄就使用ldap連到網域主控,快速設定通訊錄 一直以來相安無事, 若是遇到亂碼,就改用戶端windows系統支援UTF-8

但是最大的問題是, 若是筆電拿到外面去, ldap就無法連線, 就算用不到ldap通訊錄, 收發信的時候, 也常常出現ldap無法連線的錯誤, 很是困擾.

後來發現能修改預設通訊錄檢查方式, 就能避掉外出人員, 收發信的問題.

預設值是"從全域通訊錄清單開始", 我們改成"從聯絡人資料夾開始", 開啟通訊錄,也改成"Outlook通訊錄"

g suite 替代方案-自架mail server , postfix+openldap

之前一直維護的是 postfix + M$ 的AD 認證 , 這也可以拿來取代google 代管的mail , 但是沒事還要生出windows server , 這錢花了就算了, 就怕一直要更新... 因此花了5天時間,認真研究 , 讓postfix + openldap 認證 , 做成docker images , 也提供範例架設docker openldap server .

值得注意的是 openldap 必須要吃進去 postfix 的 ldap schema 才能跟postfix整合(aliases) .

https://hub.docker.com/r/inmethod/docker-postfix-openldap

ldap將schema轉到ldif

這把年紀了,還在用ldif ,金害!

因為我有需求, 將postfix aliases屬性加到openldap裏面, 只找到schema , 因此又找到 fuck-openldap.sh , 看來這位老兄對openldap很不爽

  • openldap環境下
root@6fa88f73c061:/# ./fuck-openldap.sh postfix.schema
./fuck-openldap.sh: converting /postfix.schema to LDIF //postfix.ldif
config file testing succeeded
./fuck-openldap.sh: LDIF file successfully created as //postfix.ldif

若你要玩postfix + ldap , 正好該ldap server是openldap server , 你就必須把這個ldif加到 openldap 裏面去, 檔案我準備好了,請按這裡下載postfix.ldif

postfix ldap測試/查詢帳號是否存在

postfix 很常見搭配微軟的AD , AD的設定檔長這樣, 檔案名稱為 xxx.cf

server_host = <AD server IP>
search_base = ou=xx,dc=yyy,dc=com
version = 3
query_filter = (&(objectclass=*)(mail=%s))
result_attribute = samaccountname  #Account from DC
result_format = %s/Maildir/
bind = yes
bind_dn = cn=zzz,cn=Users,dc=yyy,dc=com
bind_pw = password

配合以下指令,可以用來查詢email對應的帳號是否正確

postmap -q  abc@yyy.com ldap:/directory/xxx.cf

這樣就可以測試帳號是否存在了

快速新增網域ldap通訊錄(outlook 2016)

以前要新增ldap通訊錄,非常麻煩, 一堆設定, 昨天找了一些資源, 包括想要從registry方面下手都失敗, 好險有人寫了一個超方便的程式, 可以快速新增ldap 通訊錄, 感謝啊!

https://github.com/andreighita/MAPIToolkit

官網很詳細寫了說明, 我也整理了一下給大家下載

安裝roundcube心得

前陣子弄了docker image postfixad , 可以讓我簡單架設可與網域主控站整合的郵件服務器.


既然有了郵件服務器, 通常還要提供roundcube這類的webmail ,

但是我不想使用webmail的最大問題: 就是帳號跟郵件不一致

登入webmail的帳號與email不相同時, 就很麻煩, 例如:
登入的帳號是 001 , 可是emai卻變成 001@kafeiou.pw , 而不是網域在mail屬性建立的william@kafeiou.pw
這困擾我很久, 甚至想要自己寫一個roundcube的plugin , 想要登入的時候, 改寫email,

後來發現roundcube有個plugin很好用, 就是 new_user_dialog , 啟用後,第一次登入,會強迫設定名字與email, 雖然帳號與email不相同, 就讓麻瓜自行更改吧, 哈

以下列出docker 安裝roundcube方式

docker run --restart always --name roundcubemail -e ROUNDCUBEMAIL_DEFAULT_HOST=tls://<郵件主機> -e ROUNDCUBEMAIL_SMTP_SERVER=tls://<郵件主機> -p 8080:80 -d roundcube/roundcubemail


1 2