LDAP服务器搭建新手指南[通俗易懂]

LDAP服务器搭建新手指南[通俗易懂]Normal0false7.8

大家好,又见面了,我是你们的朋友全栈君。

安装

1.       这里使用的文件和版本如下(在google上搜索一下,应该能够找到下载):

a)         OPENLDAP服务器:openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe

b)         OPENLDAP客户端工具(不用安装):LdapAdminExe-0.9.96.zip


2.       直接安装OPENLDAP服务器程序软件,安装后,请尽量保证服务处于关闭状态,因为还有一些设置需要调整,有可能会对服务器有所影响。

服务器基本配置及数据导入

1.       打开安装目录,默认路径为:C:/ Program Files/OpenLDAP

2.       找到服务器配置文件slapd.conf,用记事本或者UE打开,找到如下的段落:

 

#######################################################################

# BDB database definitions

#######################################################################

 

// 数据库类型,无需修改

database          bdb 

// 根目录后缀,可修改等号右边内容,建议在不熟悉实体类的情况,先不要修改等号左边的内容                    

suffix                  “O=FOUNDER,C=CN” 

// 用户的登录名,请先保证含有完整的suffix,否则可能不能启动服务    

rootdn              “CN=DOC,O=FOUNDER,C=CN”       

# Cleartext passwords, especially for the rootdn, should

# be avoid.  See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

// 用户的登录密码

rootpw             1      

# The database directory MUST exist prior to running slapd AND

# should only be accessible by the slapd and slap tools.

# Mode 700 recommended.

// 数据保存文件路径

directory ./data     

# Indices to maintain

index         objectClass      eq

 

3.       修改完毕,打开桌面上的快捷cmd方式或者通过运行找到安装有openldap服务的安装目录,默认为C:/ Program Files/OpenLDAP,并输入net start OpenLDAP-slapd命令来启动服务。


4.       打开我们的客户端工具LdapAdmin,其界面和输入内容如下:

 

LDAP服务器搭建新手指南[通俗易懂]

 

输入完毕,请点击“测试连接”,查看连接是否正常,如果此时连接正常的话,即可看到如下的界面:

 

LDAP服务器搭建新手指南[通俗易懂]

 

并提示,没有任何实体内容!这是正常的,下面我们就需要创建根节点啦:

 

5.       我们通过命令行的方式来进行创建,这也是一种批量插入数据的方式,当然也可以通过客户端来进行设置,但貌似客户端经常会出现一些比较奇怪的问题,所以这里以执行命令文件的方式来添加数据,具体步骤如下:


a)         在安装程序目录中,新建一个空的txt文件,并将其文件类型修改为“*.ldif”,这里修改为“ldap.ldif”,并输入如下内容:

dn: O=FOUNDER,C=CN

objectClass: top

objectClass: organization

o: FOUNDER


b)         保存完毕,打开命令行工具,执行如下命令:

ldapadd -x -D “CN=DOC,O=FOUNDER,C=CN” -W -f ldap.ldif

会提示请输入密码,输入密码后回车,即会提示“添加节点O=FOUNDER,C=CN成功”


c)         然后我们再使用客户端登陆,会发现如下的情况:


LDAP服务器搭建新手指南[通俗易懂]


d)         我们可以通过客户端来进行实体的添加,也仍旧可以通过批量执行文件的方式来操作,下面我们继续通过命令文件添加一些内容,但在这之前,请我们再次打开配置文件slapd.conf,找到如下段落:


#

# 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/corba.schema

include              ./schema/dyngroup.schema

include              ./schema/inetorgperson.schema

include              ./schema/java.schema

include              ./schema/misc.schema

include              ./schema/nis.schema

include              ./schema/openldap.schema

 

将粗体部分拷贝到文件中,这都是一些实体类,服务器默认已经为我们提供了非常多的数据类,也基本能够满足我们日常的使用需要,但是如果我们的数据类型实在太过特殊,无法通过搭配已有数据类来进行描述,我们可以自己编写实体类,但在没有熟悉其概念之前,还请不要贸然下手,因为里面牵扯的概念很多,而且一个不注意,或者是空格,有的是时候,甚至是编码的格式,都会导致服务器无法正常启动的问题,尤其是在windows平台下,还请慎重!


e)         扩充完我们的实体类后,我们需要重新启动服务,然后,继续编写如下的代码到脚本文件中:

 

dn: cn=DOC,O=FOUNDER,C=CN

objectClass: organizationalRole

cn: DOC

 

dn: cn=Certificate,cn=DOC,O=FOUNDER,C=CN

objectClass: top

objectClass: organizationalRole

cn: Certificate

 

dn: cn=CRL,cn=DOC,O=FOUNDER,C=CN

objectClass: top

objectClass: organizationalRole

cn: CRL

 

dn:cn=Cert_01,cn=Certificate,cn=DOC,O=FOUNDER,C=CN

objectClass:person

objectClass:inetOrgPerson

cn:Cert_01

sn:8B4FB21E4588C29F3D4CDE2EB0B33E877A2D9C92

userCertificate;binary::MIIFJzCCBA+gAwIBAgIKEUaJgQAAAAAAAjANBgkqhkiG9w0BAQUFADBaMRMwEQYKCZImiZPyLGQBGRYDQ09NMRcwFQYKCZImiZPyLGQBGRYHRk9VTkRFUjEUMBIGCgmSJomT8ixkARkWBEhPTEQxFDASBgNVBAMMC+aWueato0FwYWJpMB4XDTA2MDgwODA1NTQzNVoXDTA3MDgwODA2MDQzNVowgZExCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnljJfkuqzluIIxDzANBgNVBAcMBuWMl+S6rDEOMAwGA1UEChMFQXBhYmkxEDAOBgNVBAsTB1Byb2R1Y3QxEjAQBgNVBAMMCeadqOahguaelzEnMCUGCSqGSIb3DQEJARYYZ3VpbGluX2dhdmluQGhvdG1haWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbQKD/GFW/RsnxESA9WFZtXn4ihLBddsv6BrXMvpfuUDzbiyaIP/zkuFha7zquHtsyDP7zxrcqpG73szRRZuQltI9cfUJakxmxbpPMGSfdZfQTPOop1oQCLTshcg1txLQJbHUPWaW89kCLyalDtsGCaPziQbbp7MZCu9RgM21vWQIDAQABo4ICOTCCAjUwDgYDVR0PAQH/BAQDAgTwMEQGCSqGSIb3DQEJDwQ3MDUwDgYIKoZIhvcNAwICAgCAMA4GCCqGSIb3DQMEAgIAgDAHBgUrDgMCBzAKBggqhkiG9w0DBzAdBgNVHQ4EFgQU/cqm57cTWYBfcS12OgrZOUssXtwwEwYDVR0lBAwwCgYIKwYBBQUHAwIwHwYDVR0jBBgwFoAUHS4GWMc5SZMJrRUiYYAlFi2Nu/kwgZwGA1UdHwSBlDCBkTCBjqCBi6CBiIZBaHR0cDovL3lhbmdndWlsaW4uaG9sZC5mb3VuZGVyLmNvbS9DZXJ0RW5yb2xsLyE2NWI5ITZiNjNBcGFiaS5jcmyGQ2ZpbGU6Ly9cXHlhbmdndWlsaW4uSE9MRC5GT1VOREVSLkNPTVxDZXJ0RW5yb2xsXCE2NWI5ITZiNjNBcGFiaS5jcmwwgegGCCsGAQUFBwEBBIHbMIHYMGkGCCsGAQUFBzAChl1odHRwOi8veWFuZ2d1aWxpbi5ob2xkLmZvdW5kZXIuY29tL0NlcnRFbnJvbGwveWFuZ2d1aWxpbi5IT0xELkZPVU5ERVIuQ09NXyE2NWI5ITZiNjNBcGFiaS5jcnQwawYIKwYBBQUHMAKGX2ZpbGU6Ly9cXHlhbmdndWlsaW4uSE9MRC5GT1VOREVSLkNPTVxDZXJ0RW5yb2xsXHlhbmdndWlsaW4uSE9MRC5GT1VOREVSLkNPTV8hNjViOSE2YjYzQXBhYmkuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQBdH2cuKuT+xa125TNSkHo+WEsI1rvwwIGYG+c1wWjDp2tzh8u1ioaPJ+WIC5ViG4bc7r3rPZ6vUWaC0TIWE1//S87W5eEHc8ScARvfd/jz+62FocTcJEvEQ/xGoXeGx+vTf6tR1a+w0dn7AzIxjqaCIZr0wY1oxX3P3GVr2ZwOD3AK73gTUa9w3JDhHCsXsrJ3Ib/An9IXTdxD9Je+9hq/2PLJyM2kD5LhVCDbtPGxSvIB8LzlKEcDW37ZRXh+W/pWXZnMNVNjmVu1cvA96BnsDrPh3b9Nr52S5hzKnkIGd+gMhctCXH2e8u2jGaDlLlrxFN2yBXHiKNeMWLB+jrro

 

dn:cn=CRL_01,cn=CRL,cn=DOC,O=FOUNDER,C=CN

objectClass: organizationalRole

objectClass:pkiCA

cn: CRL_01

certificateRevocationList;binary::MIIDLjCCAhYCAQEwDQYJKoZIhvcNAQEFBQAwWjETMBEGCgmSJomT8ixkARkWA0NPTTEXMBUGCgmSJomT8ixkARkWB0ZPVU5ERVIxFDASBgoJkiaJk/IsZAEZFgRIT0xEMRQwEgYDVQQDDAvmlrnmraNBcGFiaRcNMDYwODA4MDY1NzIxWhcNMDYwODE1MTkxNzIxWjBWMCkCChFSIWYAAAAAAAMXDTA2MDgwODA3MDcxNFowDDAKBgNVHRUEAwoBBTApAgoRUitpAAAAAAAEFw0wNjA4MDgwNzA3MDlaMAwwCgYDVR0VBAMKAQKgggEuMIIBKjAfBgNVHSMEGDAWgBQdLgZYxzlJkwmtFSJhgCUWLY27+TAQBgkrBgEEAYI3FQEEAwIBADAKBgNVHRQEAwIBAjAcBgkrBgEEAYI3FQQEDxcNMDYwODE1MDcwNzIxWjCBygYJKwYBBAGCNxUOBIG8MIG5MIG2oIGzoIGwhoGtbGRhcDovLy9DTj0hNjViOSE2YjYzQXBhYmksQ049eWFuZ2d1aWxpbixDTj1DRFAsQ049UHVibGljJTIwS2V5JTIwU2VydmljZXMsQ049U2VydmljZXMsREM9VW5hdmFpbGFibGVDb25maWdETj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwDQYJKoZIhvcNAQEFBQADggEBALXNPCNIi5A0mqaWFAeYZPgCAEbfSjFChmsoH7tFia5y5gIJDsimSGCYBwnKJBbuzHDczNk4a7jEugCfbfGbiZOfFFRerjvJ9pdUAHB9xjtAKAPIKKyuc8+ohLcewYzBD+fcD3QVes4iY0Hn7MSiH9KoaDhWvOiMzKo2VR2A+EBxBpNO5Rggms6G+Udp7HcNFms938PpOlYYLz5NwzpzEQgmJY+QXMHgCo8gGbN3z/l31u4yiJKVUUTeolvriJ7Cv+JdC/uf0tPxCUUpgEyedQRQW7OZClx7Ye1boMJqvqFbOh7rHAPB4uLax0Fn/us12+oLGQmAOUTYGhL1TEQ+J7A=


f)          保存后,重复步骤b中的命令,进行节点添加,之所以把完整的代码给出,也是方便大家进行直接动手实验,因为这里添加了证书文件和证书吊销列表文件的数据,这两种数据需要首先进行base64加密后,通过这种方式进行添加,而且要注意,其在文件中,必须保证中间没有任何多余字符,尤其注意在赋值的时候的具体写法,因为这两部分数据在LDAP服务器中是以二进制的形式进行保存的。


g)         在应用中,我们如果需要使用一些实体类的话,必须首先关注其关键字段都是那些,因为这些字段在实例化的时候,都是必须赋值的,也是DN关键索引中必须要标明的,所以一定要慎重选择。


h)         好了,我们可以打开客户端查看一下目前的数据结构了,图示如下:


 LDAP服务器搭建新手指南[通俗易懂]

 

客户端提供了很多的功能,如果打算深入学习的话,请多多尝试,毕竟图形化界面比较容易学习,但是命令行模式下,也是很方便的一种方式,如果我们有数据脚本的话。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146530.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • numpy转torch.tensor_tensorflow numpy

    numpy转torch.tensor_tensorflow numpy要对tensor进行操作,需要先启动一个Session,否则,我们无法对一个tensor比如一个tensor常量重新赋值或是做一些判断操作,所以如果将它转化为numpy数组就好处理了。下面一个小程序讲述了将tensor转化为numpy数组,以及又重新还原为tensor:importtensorflowastfimg1=tf.constant(value=[[[[1],[2],[3],[4…

    2022年10月9日
    0
  • 不能复制文字的网页文字复制怎么办_实现网页布局的方法

    不能复制文字的网页文字复制怎么办_实现网页布局的方法想必很多小伙伴遇到过这样的情况,在网上查找很多的资料,但是因为网页本身的限制不允许复制或者需要付费:遇到这种情况应该怎么办呢?接下来,就和大家分享下如何免费复制网页上不能复制的文字!解决方法一:转到打印界面进行复制:在需要复制文字的界面鼠标右键选择打印或者使用快捷键Ctrl+P,打开打印界面,在打印界面就可以进行复制操作啦!解决方法二:源代码界面复制在需要复制文字的界面鼠标右键选择“查看网页源代码”或者使用快捷键Ctrl+U,打开源代码界面,在源代码界面找到自己要复制的内容复

    2022年10月13日
    1
  • 软件测试 黑盒_软件测试黑盒测试报告

    软件测试 黑盒_软件测试黑盒测试报告1、黑盒测试概念      黑盒测试法也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性…

    2022年9月1日
    1
  • kong 网关教程入门[通俗易懂]

    kong 网关教程入门[通俗易懂]helm安装先创建pvkind:PersistentVolumeapiVersion:v1metadata:name:kong-postgrelabels:release:stablespec:capacity:storage:8GiaccessModes:-ReadWriteOncepersistentVolum…

    2022年6月26日
    74
  • java如何创建线程池_java线程池状态

    java如何创建线程池_java线程池状态分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net1、为什么要用线程池?线程池提供了一种限制和管理资源(包括执行一个任务)。每个线程池还维护一些基本统计信息,例如已完成任务的数量。这里借用《Java并发编程的艺术》,来说一下使用线程池的好处:降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行。 提高线程的可管

    2022年9月28日
    0
  • java 缓存工具类初始化_Java缓存框架

    java 缓存工具类初始化_Java缓存框架Java缓存工具类Cache工具类定义

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号