本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7599984
建立时间:2006年5月29日




[Java Open Source]OpenLDAP快速上手
软件技术

lhwork 发表于 2006/8/26 13:07:24

OpenLDAP 快速上手    Ben 的项目里面要用到 OpenLDAP, 我的项目里面也要用到 LDAP, 所以这 2 天集中看了一下 LDAP 相关的内容。做了个笔记,也算是为人类知识的积累做点或有或无的贡献。    OpenLDAP 的官方站点是 http://www.openldap.org 。        上面有个 QuickStart, 我将大致按照这个来讲解。 一、 安装 在官方站点上发布的是 linux/unix 下的 OpenLDAP 源文件,当然也很容易找到 windows 系统下的版本。笔者学习安装的就是 windows 版本的。 二、 配置 OpenLDAP 有 2 个用户最关注的配置文件。 一个是 slapd.conf , 在他里面定义了最基本的 DN 以及管理员的账号和密码。 另一个是 LDIF 的文件。在它里面可以配置所有的用户和组织。 1、  我们先来了解 LDAP 的相关概念。 我们知道 LDAP 的全称为( Lightweight Directory Access Protocol ),即轻量级目录访问协议。 Ldap 是怎样的一个结构呢 ?用官方的话说:“ In LDAP, directory entries are arranged in a hierarchical tree-like structure. Traditionally, this structure reflected the geographic and/or organizational boundaries. Entries representing countries appear at the top of the tree. Below them are entries representing states and national organizations. Below them might be entries representing organizational units, people, printers, documents, or just about anything else you can think of.. ”他是一个树状的结构。每一个节点被称为一个 Entry 。这些 Entry 有着有趣的含义。 下面是他的 2 个实例。一个反映了 geographic ,一个反映了 organizational 。 500)this.width=500'>                                                            传统命名500)this.width=500'>                                                           网络命名 我们来看看个个节点的定义方式。 每个 Entry 都有一个自己得一个标示 ,我们把他叫 DN(Distinguished Name) ,这个 dn 包含了一个 RDN ( Relative Distinguished Name )。在上面的第二个图例 中,Barbara Jensen的RDN是 uid=babs,他的dn是 uid=babs,ou=People,dc=example, dc=com。 每个节点都需要一个类别 , 这个类别信息用objectClass 来表示。ObjectClass就是该节点的schema,他定义了该节点该有和不该有的属性。所有的objectClass都在 schema/core.schema中有定义。如果在你的配置过程中出现了关于找不到objectClass的问题,您不妨参看一下这里面有没有你用到 的objectClass . 为了方便识别,其实我们在DN里面用的都是objectClass的简写形式。如:ou代表organizationUnit,c代表country,st代表state,dc代表??等。 2、  来看看 slapd.conf 这个文件 这个文件的主要信息是如下几行: database bdb suffix "dc=<MY-DOMAIN>,dc=<COM>" rootdn "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>" rootpw secret directory /usr/local/var/openldap-data 定义了数据库,最基本的后缀,管理员的 dn 和密码,以及数据存放路径。 编辑好这个文件,我们就可以启动了。 如果你把 ldap 安装为 windows 服务,你可以像我一样启动: net start OpenLDAP-slapd   3、  我们主要操作的就是这个 LDIF 文件 我们需要在这个文件里面加入所需要的 dn. 注意,因为我们在 slapd.conf 中定义了一个 base dn 和一个管理员 dn ,所以我们需要首先把这 2 个 dn 加进来。 dn: dc=<MY-DOMAIN>,dc=<COM> objectclass: dcObject objectclass: organization o: <MY ORGANIZATION> dc: <MY-DOMAIN>   dn: cn=Manager,dc=<MY-DOMAIN>,dc=<COM> objectclass: organizationalRole cn: Manager 保存为 ldif 后缀的文件。然后我们用命令把这些信息加到 ldap 中去: ldapadd -x -D "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>" -W -f example.ldif 让我们来查看以下我们的设置是否出现问题: ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)' 上面的是 linux/unix 下的命令, windows 下我们需要做点更改: ldapsearch -x -b dc=example,dc=com (objectclass=*) 对,就是去掉引号。 为了察看方便,笔者建议使用 GUI 工具来查看,比如笔者使用的 Softerra LDAP Browser 2.6 。   三、 和 java 集成 我们的 ldap Server 已经搭建起来了,我们需要在我们的 java 程序中访问这个服务。 Openldap.org 上有没有讲?有讲?下面介绍的 JLDAP 就是干这个的。 我们需要看一下“ Java LDAP Overview ”里面的内容。内容不是很多,但很实用。 要在 java 中访问 ldap ,我们需要一套 api, 你可以在下面的网站上获得: http://developer.novell.com/wiki/index.php/LDAP_Classes_for_Java 在下在的文件里面有许多的例子,在 novell 的网站上也有很多的例子。我就不讲了。 Try yourself 。


阅读全文(1907) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.539 second(s), page refreshed 144786183 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号