Linux下安裝openldap 啟動及配置一站式搞定
外鏈:Tomcat+LDAP完成認證:http://my.oschina.net/xpbug/blog/198765
1、安裝Berkeley DB wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz 解壓縮 tar zxvf berkeley-db-4.6.21.tar.gz 配置,編譯,安. 1、 cd db-4.6.21/build_unix/ 2、 ../dist/configure --prefix=/usr/local/berkeleyDB 3、 make 4、 make install 注意:安裝完成後把執行 # cp /usr/local/berkeleyDB/include/* /usr/include/ # cp /usr/local/berkeleyDB/lib/* /usr/lib/ 2、配置berkeleyDB 環境變數 vi ~/.bash_profile 新增:# tar -xzvf openldap-2.4.15.tgz
# cd openldap-2.4.15/
# ./configure --prefix=/usr/local/openldap
# make depend
# make
# make install 錯誤解決: 1、configure: error: Berkeley DB version mismatch./configure --enable-bdb --libdir=/usr/local/BerkeleyDB/lib --includedir=/usr/local/BerkeleyDB/include --prefix=/usr/local/openldap --sysconfdir=/etc/openldap --enable-passwd --enable-wrappers --disable-ipv6 --enable-spasswd --enable-crypt --enable-modules --enable-accesslog=yes
2、在 ./configuer時出現錯誤提示: configure: error: could not locate libtool ltdl.h 解決方法:安裝 libtool-ltdl 及libtool-ltdl-devel包 如果是64位系統,通過yum方式,命令如下, # yum install libtool-ltdl.x86_64 libtool-ltdl-devel.x86_64 |
這裡要填定你的域名,客戶端連線的時候要用到的!
定義超級管理員帳號的密碼,這裡使用的是明文儲存(secret即是其密碼)的方式。這是極不安全的,建議使用加密方式儲存,可以使用的加密方式有:CRYPT、MD5、SMD5、SHA和SSHA。產生加密密碼雜湊的方法是使用slappasswd命令,用-h選項指明加密時使用的方式。示例如下:# /usr/local/openldap/sbin/slappasswd -h {SSHA}
New password:
Re-enter new password: {SSHA}F6WTMlSbUsQP0JKwB7M/JZSsmHR+g2Ow(把這段覆蓋掉明文密碼即可)
4 啟動LDAP
#/usr/local/openldap/libexec/slapd -d256
補充:
關於停止slapd,官方給的是:kill -INT 'cat /usr/local/var/slapd.pid'
但是我執行以後提示bash: kill: cat /usr/local/var/slapd.pid: arguments must be process or job IDs 用find /usr -name slapd.pid命令找到了在/usr/local/openldap/var/run/下,把命令改為: kill -INT `cat /usr/local/openldap/var/run/slapd.pid` 重新執行slapd:su root -c /usr/local/openldap/libexec/slapd -d256 建議執行/usr/local/openldap/libexec/slapd -d256 命令,這樣既可以在命令列看到出錯資訊,也可以用Ctrl+C停止程序 5、通過配置檔案匯入資料 編輯檔案:#建立組Admins
dn: ou=Admins,dc=sogal,dc=com
ou: Admins
objectClass: top
objectClass: organizationalUnit
#建立組Users
dn: ou=Users,dc=sogal,dc=com
ou: Users
objectClass: top
objectClass: organizationalUnit
#建立組下的使用者
dn: uid=testuid,ou=Users,dc=sogal,dc=com
objectClass: inetOrgPerson
uid: testuid
sn: testsn
cn: testcn
mail: [email protected]
userPassword: testpass
/usr/local/openldap/bin/ldapadd -x -W -D "cn=Manager,dc=sogal,dc=com" -f example.ldif ldif檔案格式規範: (1空行)
dn:(空格) dc=hq3595,dc=com(結尾無空格)
objectclass: (空格)dcObject(結尾無空格)
objectclass: (空格)organization(結尾無空格)
o: (空格)kaspersky(結尾無空格)
dc:(空格) test(結尾無空格)
(1空行)
dn: (空格)cn=test,dc=mail,dc=kaspersky,dc=com(結尾無空格)
objectclass: (空格)organizationalRole(結尾無空格)
cn: (空格)test(結尾無空格)
(結尾無空行)
6、安裝JXplorer管理LDAP
7、訪問控制配置,也是在slapd.conf配置檔案裡 (暫時沒做處理)
by self write by anonymous auth by dn="cn=Admin,dc=example,dc=com" write by * none access to * by self write by dn="cn=Admin,dc=example,dc=com" write by * read |
|
8、Java認證(核心程式碼):
private static DirContext ctx;
@SuppressWarnings(value = "unchecked")
public static DirContext getCtx() {
String account = "Manager"; //binddn
String password = "hq3595"; //bindpwd
String root = "dc=hq3595,dc=com"; // root
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://192.168.147.131:389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "cn=" + account+","+root);
env.put(Context.SECURITY_CREDENTIALS, password);
try {
// 連結ldap
// ctx = new InitialDirContext(env);
ctx = new InitialLdapContext(env, new Control[]{new PagedResultsControl(100, Control.NONCRITICAL)});
System.out.println("認證成功");
} catch (javax.naming.AuthenticationException e) {
e.printStackTrace();
System.out.println("認證失敗");
} catch (Exception e) {
System.out.println("認證出錯:");
e.printStackTrace();
}
return ctx;
}
public static void closeCtx() {
try {
ctx.close();
} catch (NamingException ex) {
Logger.getLogger(LdapHelper.class.getName()).log(Level.SEVERE, null, ex);
}
}
9、自定義LDAP屬性 配置inetOrgPerson物件類的兩個自定義屬性。
- isAbsent 128字元內的字串,單值
- substitutes 128字元內的字串,多值
參閱了OpenLdap的管理文件以及網上的例項之後,解決方案如下:
編輯OpenLDAP的模式定義檔案 /usr/local/etc/openldap/slapd.conf中可以找到schema,pid以及資料庫檔案存放的路徑
inetorgperson.schema,增加屬性定義 attributetype ( 2.16.840.1.113730.3.1.900
NAME 'isAbsent'
DESC 'whether the person is absent from work'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128}
SINGLE-VALUE )
attributetype ( 2.16.840.1.113730.3.1.901
NAME 'substitutes'
DESC 'people substitutes when absent'
EQUALITY caseIgnoreMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{128} )
其中2.16.840.1.113730.3.1.900和901是選擇未被使用的OID(不知道有沒有被使用過?google下吧),而1.3.6.1.4.1.1466.115.121.1.15則是字串型別的語法。
在inetOrgPerson類中啟用這2個屬性
objectclass ( 2.16.840.1.113730.3.2.2NAME 'inetOrgPerson'
DESC 'RFC2798: Internet Organizational Person'
SUP organizationalPerson
STRUCTURAL
MAY (
...
isAbsent $ substitutes )
)
在slapd.conf中啟用inetorgperson.schema
## See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
ucdata-path ./ucdata
include ./schema/core.schema
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
include ./schema/nis.schema 重新啟動LDAP服務之後一切搞定。
相關推薦
Linux下安裝openldap 啟動及配置一站式搞定
外鏈:Tomcat+LDAP完成認證:http://my.oschina.net/xpbug/blog/198765 1、安裝Berkeley DB wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.
記錄Centos6.5下安裝vsftp服務及配置文件說明
linux 運維 vsftp 參考文章:http://blog.csdn.net/zwhfyy/article/details/1547454 http://www.linuxidc.com/Linux/2015-06/118442.htmvsftp 的優點:除了安全、高速、穩定之外,vsftpd
linux下安裝nexus repository及Intellij Idea集成私有maven
files usm codehaus ima sna rem 依賴 技術分享 active 前段日子公司搞java項目,使用nexus repository搭建了私有maven庫,現在把原來的私有nuget也遷到nexus repository上了,下面介紹下搭建流程:
linux下安裝libcurl過程及開發遇到的問題"curl/curl.h:沒有那個檔案或目錄"缺少標頭檔案解決方法
可以從官網上下載https://curl.haxx.se/download.html,也可以命令列下載 我是從官網看的版本,複製連結,再在命令列下載 # wget https://curl.haxx.se/download/curl-7.51.0.tar.gz # tar -zvxf curl-7.
linux下安裝libcurl過程及開發遇到的問題"curl/curl.h:沒有那個檔案或目錄"缺少標頭檔案解決方法
可以從官網上下載https://curl.haxx.se/download.html,也可以命令列下載 我是從官網看的版本,複製連結,再在命令列下載 # wget https://curl.haxx.se/download/curl-7.51.0.tar.gz # tar -
linux下安裝mariadb以及相關配置
版本:centos7 Linux下安裝MariaDB官方文件參見:https://mariadb.com/kb/zh-cn/installing-mariadb-with-yum/ 1.建立MariaDB.repo檔案 vi /etc/yum.repos.d
linux下安裝jdk,tomcat配置環境變數
檢視當前系統jdk rpm -qa|grep jdk 如果出現關於jdk自帶的openjdk,這是linux自帶的需要先解除安裝 yum remove openjdk 1,建立資料夾 把安裝好的.gz的壓縮包放在你想解壓的目錄下,或者使用cp或者mv移動到你想安裝的目錄 ls -l 顯示當前
Linux 下安裝svn伺服器及錯誤集錦
由於公司新買了一臺伺服器,然後要從新搭建svn伺服器,這個任務落到了我的身上,都要過年了。好吧,抱怨是窮人的專利。不能這樣,打起精神開幹。前後用了一個多小時,不過還是安裝好了,期間遇到
linux下徹底刪除軟體及配置檔案
今天清理一下系統,使用了一個命令列,可能對其他人有參考價值 dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge 用途: 刪除已經刪除的軟體包的殘留配置檔案。因為 debian 中 remov
Linux下安裝Tomcat啟動報錯
一、報以下錯誤: Using CATALINA_BASE: /home/apache-tomcat-7.0.72 Using CATALINA_HOME: /home/apache-tomcat-7.0.72 Using CATALINA_TMPDIR
Linux下安裝mysql方式及遇到的問題
本人剛開始使用yum源安裝的,不過遇到了各種問題沒有解決,建議大家用rpm包安裝 1.首先下載需要的rpm包 進入mysql官網:https://dev.mysql.com/downloads/mysql/(也可以通過映象下載https://mirrors.tu
Linux下安裝php,並配置到nginx【最終版,完美解決問題】
1、 下載 libxml2-2.6.32.tar.gz http://download.csdn.net/detail/netlong339/1351852 php-5
linux下安裝libcurl過程及開發遇到的問題"curl/curl.h:沒有那個檔案或目錄"
我是從官網看的版本,複製連結,再在命令列下載 # tar -zvxf curl-7.51.0.tar.gz # cd curl-7.51.0/ # ./configure -prefix=/usr/local/curl # make # make insta
linux下安裝redis+redis主從配置+redis基本命令
linux安裝redis redis安裝步驟如下: linux命令下載: wget –p /java/redis “chainUrl”;指定下載目錄 1、下載redis安裝包。下載地址為https://redis.io/download 下載下來的檔案為redis-3.2
如何在linux下安裝mysql資料庫並配置
1.查詢以前是否安裝有mysql,使用下面命令: rpm -qa|grep -i mysql 如果顯示有如下包則說明已安裝mysql mysql-4.1.12-3.RHEL4.1 mysqlclient10-3.23.58-4.RHEL4.1 2.如果已安裝,則需要刪除已安裝的資料庫,使用以下命令來
LInux 下安裝 python notebook 及指向路徑
1. 安裝 pip工具 sudo apt-get install pyton-pip 2. 安裝ipython及其依賴包 sudo apt-get install ipython ipython-notebook 3. 安裝可選的附加工具(需要時間較
linux下安裝redis,啟動,停止,設定密碼
第一步:安裝外掛: 1 yum -y install cpp binutils glibc glibc-kernheaders glibc-common glib
Mac OS X下安裝Java 7及配置Eclipse JDK
如果想啟用jdk1.7的語法,必須要eclipse版本在3.8/4.2以上(目前我寫這篇部落格的時候,4.2已經達到了Milestone4),然後可以在workspace/project屬性裡把編譯等級調整到1.7,就能享受jdk1.7的語言特性了(不過前提是,使用的jdk以及jre必須都是jdk1.7以
linux系統安裝Anaconda環境及配置
目錄 1.安裝anaconda Linux環境下安裝Anaconda可以根據自己想要的Python版本號到Anaconda的官方網站下載相應系統下相應版本的Anaconda安裝包。 官方網站:出門左拐百度Anaconda官網即可; 下載完畢,把包拷貝到
Linux下安裝php環境並且配置Nginx支援php-fpm模組
以下以CentOS 7.2為例,安裝php的執行環境,首先開啟php官網http://php.net/點選導航欄的Downloads進入下載頁面:http://php.net/downloads.php 這裡下載最新版的php 7.0.5 的原始碼包: