簡介
我們即將開始一個個的搭建我們的協(xié)作平臺, 實際上這些平臺是隨著我們團隊不斷發(fā)展, 相繼引入的. 當起第三個平臺搭建起來的時候, 一個嚴峻的問題出現(xiàn)了: 每個平臺都有一套賬號系統(tǒng), 每人都要為每個平臺記下不同的賬戶密碼, 新人加入管理員要重復三遍創(chuàng)建賬號的操作. 這是完全無法接受. 建立一個集中認證系統(tǒng)迫在眉睫, 經(jīng)過比較 最終選擇 OpenLDAP.
回頭再看, 如果你打算搭建一系列的需要工具/平臺, 集中認證服務是無法繞過的一項工作, 最好在一開始就做, 還可以避免后面遷移用戶的麻煩, 所以這里我在最開始就介紹 LDAP.
LDAP 全稱是輕量級目錄訪問協(xié)議(Lightweight Directory Access Protocol), 被設計為以中心化分層次的目錄和文件的形式管理和訪問相關信息.
它可以存儲組織任何類型的信息, 在這里我們使用它最常見的用途, 集中式認證. OpenLDAP 是 LDAP 的開源實現(xiàn), 下面是在 Ubuntu 14.04 上安裝的過程.
安裝 OpenLDAP
OpenLDAP 包含的 Ubuntu 的默認倉庫, 包的名字是 sldap, 同時我們還需要一些工具 ldap-utils
sudo apt-get update
sudo apt-get install sldap ldap-utils
安裝過程中, 會讓你設定 LDAP 的管理員密碼.
配置 sldap
這個過程可以使用交互輸入的形式配置很多關鍵信息, 你會被問到一系列問題:
Omit OpenLDAP server configuration? No
-
DNS domain name:
- 這個選項會決定你的目錄路徑的根結(jié)構(gòu), 閱讀提示信息理解它是如何實現(xiàn)的.
- 這其實是一個開放選項, 不過最好使用你或者團隊所擁有的域名.
- 本文使用 example.com 作為樣例.
-
Organization name:
- 組織名稱, 依然取決于你自己的決定.
- 本次使用 example 為例.
-
Administrator password:
- 安裝時候設置的管理員密碼, 此時也可以更改這個密碼.
-
Database backend to use?
- 后臺使用的數(shù)據(jù)庫, 作為樣例或者輕量使用選擇集成的 HDB 就足夠了.
- 如果需要使用其他數(shù)據(jù)庫, 閱讀此文: The SQL backend How do I setup/configure back-sql?
Remove the database when slapd is purged? No
Move old database? Yes
Allow LDAPv2 protocol? No
這時 LDAP 就應該能夠正常運行了.
安裝 LDAP 的 Web 管理界面 phpLDAPadmin
ldap-utils 提供了一些命令行工具管理 openLDAP, 但是大多數(shù)人應該還是更習慣圖形界面操作, 我們選擇 phpLDAPadmin 作為 openLDAP 的 web 管理圖形界面.
phpLDAPadmin 也包含在 Ubuntu 的默認倉庫里.
sudo apt-get install phpldapadmin
一行命令就會安裝好 phpLDAPadmin 以及依賴, 并且配置好 apache.
配置 phpLDAPadmin
安裝好后, 我們需要做一些配置, 讓 phpLDAPadmin 能夠正確連接 openLDAP.
編輯配置文件
sudo vi /etc/phpldapadmin/config.php
在這個配置文件里, 寫入 LDAP 服務的詳細信息
$servers->setValue('server','host','server_domain_name_or_IP');
接下來需要配置 LDAP 服務的域名, 我們之前選擇的是 example.com
, 這里的值就是 "dc=example, dc=com
$servers->setValue('server','base',array('dc=example,dc=com'));
接著修改管理員登陸的 bind_id 參數(shù), cn=admin 已經(jīng)是對的了, 只需修改 dc 即可.
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');
最后隱藏模板的警告:
$config->custom->appearance['hide_template_warning'] = true;
保存退出
登陸 phpLDAPadmin web 接口
訪問頁面
http://domain_name_or_IP_address/phpldapadmin
可以看到這個界面

點擊左側(cè)列表 "Login" 連接, 使用管理員賬戶登陸.


添加組織、組和用戶
LDAP 非常靈活, 可以使用多種不同的方式創(chuàng)建關系和結(jié)構(gòu), 下面我們針對信息創(chuàng)建一些基礎結(jié)構(gòu), 然后用再用信息信息填充它們.
創(chuàng)建組織
點擊左側(cè)的 "Create new entry here".

選擇 "Generic: Organizational Unit" 模板. 命名為 "groups"

確認改動

左側(cè)可以看到成功創(chuàng)建 "groups"

重復以上過程, 創(chuàng)建 "users" 組織.
創(chuàng)建組
創(chuàng)建三個不同的組, 'admin' 'irc' 'user' 并賦予不同的權(quán)限. 點擊 "groups" 選擇創(chuàng)建子條目

選擇 "Generic: Posix Group"

命名為 "admin"

重復以上步驟, 再創(chuàng)建 "irc" 和 "user" 組.

創(chuàng)建用戶
接下來創(chuàng)建用戶, 并指定到組里. 點擊 "ou=users" 開始.
選擇 "Generic: User Account"

填寫以下內(nèi)容

需要注意的是, Common Name 必須是唯一的, 建議使用用戶名替代自動生成的 FistName LastName 結(jié)構(gòu)的 CN.
點擊創(chuàng)建按鈕并確認.
添加用戶到組
一個用戶可以添加到多個組里. 選中之前創(chuàng)建的組, 點擊 "Add new attribute":

選擇 'memblerUid'

輸入要添加的 Uid

然后可以通過 "modify group members" 添加更多用戶.

總結(jié)
現(xiàn)在 LDAP 已經(jīng)完美運行, 并且已經(jīng)創(chuàng)建好一些分組和用戶, 可以集成到其它服務里了.