LDAP的安装与redmine的融合

来源:互联网 发布:手机淘宝怎样更改密码 编辑:程序博客网 时间:2024/05/19 00:40

前言

    若安装出现问题,这很正常,我的教程配置步骤是正确无比的,但有可能你的安装配置过程中没跟我的教程一起走,出问题的时候最好首先看问题在什么地方,报什么错误,然后自己能看懂的就自己尝试去解决,看不懂的,看本教程后面的常见错误,如果没找到的话,再看教程,一一匹配.还不行,我邮箱meicy2010@hotmail.com.小问题就别来了,只有自己去钻研,去尝试出错,才能真的把LDAP弄懂.对于编程也是一样的,难产的只是业务逻辑而已~~

1.windowsopenldap的安装与测

1.openldap的下载:

可以通过 openldap for windows google上搜索到。

目前最新版本是:2.4,我用2.2.19,求稳定

 

2.运行openldap-2.2.19-db-4.3.21-openssl-0.9.7e-win32.exe安装,一路next就可以了安装ldap for windowsC:/openldap/。我在虚拟机里玩的,所以就放在C盘

 

3.假设我们使用的域名是 meicy.com对应的主机IP192.168.1.175 

4.修改C:/WINNT/system32/drivers/etc/下的host文件

添加下面一行

192.168.1.175   meicy.com 

 

5.配置openldap,修改D:/openldap/slapd.conf里的内容

 

把下面两行(57,58)

 

suffix  "dc=my-domain,dc=com"
rootdn  "cn=Manager,dc=my-domain,dc=com"

 

改成

 


suffix  "o= meicy,o=com"
rootdn  "cn=Manager,o= meicy,o=com"

 

运行

 

D:/openldap>slappasswd -h {MD5}
New password: Re-enter new password: {MD5}4QrcOUm6Wau+VuBX8g+IPg==
(我输入的密码是123456
然后继续修改slapd.conf 将明文密码改掉,MD5加密     

把下面这行(62)

 

rootpw  secret

 

改成

 

rootpw  {MD5}4QrcOUm6Wau+VuBX8g+IPg==

 

 

 

接下来运行D:/openldap/slapd.exe来启动LDAP服务。

或者运行slapd -d 1

可以看到日志信息。如果安装成功,最后四行的内容you应该能看懂吧.就是:

图片

 

接下来启动虽然成功了,安装是否成功呢?

6我们编写个很简单的java,不涉及操作,就做测试用,想必菜鸟都能看懂的.编译运行测试,安装是否成功.控制台会打出东东:

 

import java.util.*;

import javax.naming.Context;

import javax.naming.NamingException;

import javax.naming.directory.DirContext;

import javax.naming.directory.InitialDirContext;

 

 class LDAPTest {

  public LDAPTest(){

  }

 

  public staticvoid main(String[] args) {

    LDAPTestLDAPTest1 = new LDAPTest();

    String root ="o= meicy,c=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.1.180/" +root);  

   env.put(Context.SECURITY_AUTHENTICATION, "simple");

   env.put(Context.SECURITY_PRINCIPAL, "cn=Manager,o=meicy,c=com");

   env.put(Context.SECURITY_CREDENTIALS, "123456");//这是密码哦

    DirContext ctx= null;

    try {

      ctx = newInitialDirContext(env);

     System.out.println("认证成功");

    }

    catch(javax.naming.AuthenticationException e) {

     e.printStackTrace();

     System.out.println("认证失败,一般是密码错了哦");

    }

    catch (Exception e) {

     System.out.println("认证出错:一般是IP错了哟");

     e.printStackTrace();

    }

 

    if (ctx !=null) {

      try {

       ctx.close();

      }

      catch(NamingException e) {

        //ignore

      }

    }

    System.exit(0);

  }

 

}

编译运行

图片

 

安装完了,接下来做什么呢?进入第二部,ldif文件,给用户统一生成目录

2.LDAP里添加目录树

 

Openldap目录下新建一个test.ldif文件

我们在meicy公司里添加两个员工,vieriowen.

dn: o=meicy,c=com

objectClass: dcObject

objectClass: organization

o: meicy

dc: com

 

 

 

 

dn: uid=vieri,o=meicy,c=com

uid: vieri

objectClass: inetOrgPerson

givenname: vieri

sn: christain

mail: vieri@Italy.com

userPassword: 111111

labeledURI: http://www.china.com

cn: vieri-cn

 

 

dn: uid=owen,o=meicy,c=com

uid: owen

objectClass: inetOrgPerson

givenname: Michael

sn: Owen

mail: Owen@English.com

userPassword: 111111

labeledURI: http://www.china.com

cn: owen-cn

 

然后控制台切换到Openldap目录下

ldapadd -x -D "cn=manager,o=meicy,c=com" -w 123456-f test.ldif

 

目录建设完毕,现在让它显示出来,这里要在LdapBrowser282.rar 中显示出来,可在http://www.blogjava.net/Files/Unmi/LdapBrowser282.rar下载。解压并双击lbe.bat批处理文件,弹出LDAP Browser窗口中默认会有一个OpenLdap_Localhost的链接,选edit,

然后照图操作,password是你访问ldap的密码,123456,之前设置好的.

图片


 

save之后,connect,你会发现

图片

右侧属性里双击,然后可以改里面的属性,apply一下就可以了. Openldap安装配置完毕!

 

2.LDAPredmine的融合

据说redmine现在很火,我们在浇浇油,接下来我们把它连到redmine里面去,首先你要确定好你安装配置好redmine,然后跟meicy走吧.

管理员登入,管理->配置->认证,右下角ldap认证,进入后,点击右上侧新建认证模式,在弹出的窗体上填好东东,如图所示

图片

创建完后,点击右侧的测试按钮,看是否显示连接成功.然后呢,你就可以用刚才的ldif文件里的用户名uid(上图中设置了登录名是uid这个属性),密码是userPassword,ldif里面有的,好的,不废话,owen登录进去看看.

 

 

3.常用命令

其实都可以用LdapBrowser282.rar这个界面工具来对我们的ldap账户进行管理,可能项目经理们不喜欢,最好是能直接输dos命令能做某种操作的,因为有了这个命令,完全可以在代码里调用实现.方便后期管理与维护.特列下面几条命令,也是最常用的.

参数含义:

-x,使用简单认证方式,而不是SASL,这个选项在后面仍然很常用

-v,输出更多信息

-Dcn=admin,dc=cg,dc=com,dc=cn,使用此用户进行增加操作,显然用管理员比较好使,增加用户的权限不是谁都有的

-W,提示输入密码,也可以在命令行里面给出密码,这时的参数应该是-w password,这对于脚本来说比较方便

具体功能

A.       修改密码

ldappasswd -x -v -S -W -D cn=Manager,o=meicy,c=comuid=vieri,o=meicy,c=com

解释,拿系统管理员账号(cn=Manager,o=meicy,c=com)去修改uid=vieri,o=meicy,c=com

的密码,会提示输入密码两次,但没显示出来哦呵呵,输就是啦.

语言解释:

-S 参数是要求命令提示用户输入两次新的密码,来确认密码更新,使用-s newpasswd 可以在命令行中指定新密码。

 

B.       增加用户

 

ldapadd -x -D "cn=manager,o=meicy,c=com" -w 123456-f test.ldif

 

C.       删除用户

 

ldapdelete -x -v -W -D cn=manager,o=meicy,c=com 
uid=owen,o=meicy,c=com  

提示输入访问LDAP的密码,输入123456.

D.查询用户

ldapsearch -x cn=vieri-cn

 

 

4.常见错误

错误其实有很多,只是之前没打算做教程,所以没记录下来.出了问题解决不了的,可以发邮件到我邮箱,meicy2010@hotmail.com.小问题就别来了,自己好好琢磨.

错误49

始终停在 ldap_bind: Invalid credentials(49)这个错误上  基本上是测试类里的密码错误,dn错误.

错误19

图片

dc属性有多个,删掉只留下一个就好了.