Windows 下搭建LDAP服务器.docx

上传人:b****1 文档编号:2370796 上传时间:2023-05-03 格式:DOCX 页数:11 大小:323.68KB
下载 相关 举报
Windows 下搭建LDAP服务器.docx_第1页
第1页 / 共11页
Windows 下搭建LDAP服务器.docx_第2页
第2页 / 共11页
Windows 下搭建LDAP服务器.docx_第3页
第3页 / 共11页
Windows 下搭建LDAP服务器.docx_第4页
第4页 / 共11页
Windows 下搭建LDAP服务器.docx_第5页
第5页 / 共11页
Windows 下搭建LDAP服务器.docx_第6页
第6页 / 共11页
Windows 下搭建LDAP服务器.docx_第7页
第7页 / 共11页
Windows 下搭建LDAP服务器.docx_第8页
第8页 / 共11页
Windows 下搭建LDAP服务器.docx_第9页
第9页 / 共11页
Windows 下搭建LDAP服务器.docx_第10页
第10页 / 共11页
Windows 下搭建LDAP服务器.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Windows 下搭建LDAP服务器.docx

《Windows 下搭建LDAP服务器.docx》由会员分享,可在线阅读,更多相关《Windows 下搭建LDAP服务器.docx(11页珍藏版)》请在冰点文库上搜索。

Windows 下搭建LDAP服务器.docx

Windows下搭建LDAP服务器

Windows下搭建LDAP服务器

五一闲来没事,加上项目正在进行UAT。

抽空研究了一下LDAP相关知识。

随手做一个记录。

为了方便阅读还是先介绍一下什么是LDAP?

前言、LightweightDirectoryAccessProtocol:

TheLightweightDirectoryAccessProtocol,orLDAP,isanapplicationprotocolforqueryingandmodifyingdirectoryservicesrunningoverTCP/IP.(viawikipedia)。

LDAP全称是一个轻量级的目录访问协议,它是建立在TCP/IP基础之上的用来查询和修改目录服务的。

这是照着wiki翻译的,但是有人要问了什么是directoryService(目录服务)?

按照wiki的说法的话讲:

在软件行业,目录就如同一个字典,他使得通过某一名称去查找绑定在该名称上的值得方式成为一种可能。

有点类似Java中Map的概念。

adirectoryserviceissimplythesoftwaresystemthatstores,organizesandprovidesaccesstoinformationinadirectory.一个目录服务就是一个简单的软件系统,在这个目录上提供了存取和组织信息的功能。

LDAP目录中可以存储各种类型的数据:

电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。

OK,进入正题。

Google搜索windowsldap服务器,终于找到了一个比较好的流行的:

OpenLDAP(点击下载)。

一、OpenLDAP安装和配置

安装还是比较简单的,一直next就好。

这里记得把上面2个都选上,将LDAP注册为系统的一个服务,默认安装位置:

C:

\ProgramFiles\OpenLDAP,

进入安装目录,编辑slapd.conf文件:

找到

ucdata-path./ucdata

include./schema/core.schema

在下面加入:

(注意你的系统路径,可能随安装位置不同而稍有差异)

include./schema/core.schema(这里是和原来有的,如果加入的话就重复包含了,不能正常启动了。

应该除这句外都加入)include./schema/corba.schema

include./schema/dyngroup.schema

include./schema/java.schema

include./schema/misc.schema

include./schema/cosine.schema

include./schema/nis.schema

include./schema/inetorgperson.schema

include./schema/openldap.schema

这个搞定以后,在同一文件后面的(大概65-66行,修改)

suffix”o=anotherbug,c=com“(直接拷贝过去引号会变成中文的。

注意引号用英文的,会影响启动)

rootdn”cn=manager,o=anotherbug,c=com“

还有第70行的位置:

rootpwsecret,这里要修改为加密后的密码。

具体操作:

打开命令行,定位到安装目录下,输入:

slappasswd-h{MD5}–s“替换为你想要设置的密码,无引号”

将生成的MD5密文:

{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==填入原来secret位置。

OK至此配置已经搞定,可以测试一下服务了。

打开命令行转到安装目录下输入:

sldapd-d1注意命令是(slapd-d1)

至此LDAP服务器已经搭建并可以跑起来了.下面要来测试怎么倒入.ldif格式的数据了。

二、建立条目(Entry),导入ldif后缀名文件

ldif:

LDAPDataInterchangeFormat,基于文本。

有两种类型的LDIF文件:

第一种是描述Directory条目数据的,第二种是描述更新条目的。

我们主要看怎么描述条目的。

打开编辑器(如Editplus,UltraEdit等),新建test.ldif内容如下:

dn:

o=anotherbug,c=com

objectClass:

dcObject

objectClass:

organization

o:

anotherbug

dc:

com

dn:

uid=mousepoato,o=anotherbug,c=com

uid:

mousepoato

objectClass:

inetOrgPerson

mail:

paradise.lsj@

userPassword:

admin

labeledURI:

sn:

Li

cn:

test

注意ldif文件对格式的要求非常严格,属性要以冒号和空格与值隔开,并且其他地方不允许有空格。

否则当你导入ldif文件时,会提示出现“ldap_add:

Invalidsyntax(21)”等诸多错误,另外在我机器上测试,ldif对中文支持也还不好,比如我将最后的cn:

test改为cn:

鼠标土豆,导入就会报错。

写完保存到安装目录下。

在命令行输入:

ldapadd-c-x-D“cn=manager,o=anotherbug,c=com”-w“刚才替换secret出的密码明文”-ftest.ldif

运行命令后结果如下:

注意我们在ldapadd后面加上了”–c“参数,他会一直运行不会因错误而终止,比如对系统已经存在的entry命令会提示但不会中止。

三、LDAP查看工具

可能大家看了这么多感觉还是很抽象,我们需要一个GUI看看LDAP到底是个什么东东。

这里推荐两个浏览工具

1、LdapBrowser

这是个Java开发的LDAPBrowser/Editor工具,不但跨平台(Windows,Unix-like),而且功能非常完整,速度又快。

运行起来的界面时这个样子的。

2、SoftrraLDAPAdministrator2009

这是一个比较强大和专业的客户端,涵盖了大多数企业的LDAP服务类型。

一直下一步安装成功后,它的配置也是比较简单的:

新建一个profile,命名为Local_LDAP

配置连接信息

这是完整配置好后的效果

四、通过JNDIapi操作LDAP例子

Javax里面提供的JNDI为我们封装好了对LDAP的directoryservice进行存取查询的函数,可以方便实用。

贴上我用JUnit4写一个对LADP服务器进行测试的代码供参考:

privatestaticLoggerlog=Logger.getLogger(TestLdapOper.class);

DirContextcontext=null;

TestLdaptldap=null;

@Before

publicvoidinit()throwsNamingException{

tldap=newTestLdap();

context=tldap.getContext();//获取context

}

@Test

@Ignore

publicvoidtestInsert()throwsNamingException{

tldap.addEntry(context,“uid=IBM,o=anotherbug,c=com”);

}

@SuppressWarnings(“unchecked”)

@Test

publicvoidtestGetAttributes()throwsNamingException{

ListattNameList=newArrayList();

attNameList.add(“o”);

attNameList.add(“dc”);

attNameList.add(“objectClass”);

Mapmap=JNDIUitl.getAttributes(context,“o=anotherbug,c=com”,attNameList);

IteratorkeyValuePairs=map.entrySet().iterator();

for(inti=0;i

Map.Entryentry=(Map.Entry)keyValuePairs.next();

Objectkey=entry.getKey();

Objectvalue=entry.getValue();

log.info(key+“==key”);

log.info(value+“–value”);

}

}

@SuppressWarnings(“unchecked”)

@Test

publicvoidtestGetAttriValues()throwsNamingException{

assertEquals(“”,JNDIUitl.getAttributeValues(context,“o=anotherbug,c=com”,“dc”).get(0)+“”);

Listlst=newArrayList();

lst=JNDIUitl.getAttributeValues(context,“o=anotherbug,c=com”,“objectClass”);

assertEquals(“organization”,lst.get

(1)+“”);

for(inti=0;i

log.info(lst.get(i));

log.info(ReflectionToStringBuilder.toString(lst.get(i)).toString());

}

}

@SuppressWarnings(“unchecked”)

@Test

publicvoidtestSearchContext()throwsNamingException{

Listlist=JNDIUitl.searchContextSub(context,“o=anotherbug,c=com”,“(objectClass=*)”);

for(inti=0;i

log.info(list.get(i));

}

}

@After

publicvoiddestroy()throwsNamingException{

context.close();

}

补充

另外一款LDAP软件LDAPAdminToolProfessional

官方地址:

C#到LDAP验证的代码

在我的空间文件夹里放着呢(本站的SkyDrive)

guangzhi►SkyDrive►计算机类文件夹

http:

//cid-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2