ldap协议端口号,轻量级目录访问协议端口号 | 28百科知识网-pg麻将胡了模拟器

2024-01-1021:28:21综合百科4

ldap是一个基于x.500标准的轻量目录访问协议,通常全称为lightweight directory access protocol。

  • 目录服务:是一种特殊的数据库,用于存储描述性的、基于属性的详细信息,支持过滤功能,动态灵活且易扩展。目录是一个为查询、浏览和搜索而优化的数据库,类似于文件目录结构。
  • 目录数据库的特点:数据以树状结构存储,读取速度快,写入速度慢。不支持复杂功能如事务处理、回滚等,不适用于存储频繁修改的数据。
  • ldap是一个开放的标准化协议,受到广泛支持。它以树形用户目录作为存储结构,符合常规组织管理模型。

ldap采用client-server模型,服务器用于存储数据,客户端用于操作数据。ldap协议的具体实现总结如下表:

在ldap中,信息以树状方式组织,条目是树状信息中的基本数据单元,每个条目由属性构成,属性中存储有属性值。

以下结合一个openldap里面的数据来解释下相关术语

条目,也称为记录项,是ldap中最基本的信息单元,类似于字典中的词条,或者数据库中的记录。通常对ldap的添加、删除、更改、检索都是以条目为基本对象进行的。(注意:一个entry可以是一个user,也可以是一个ou,也可以是一个group)

dn:每个条目都有一个唯一的标识名(distinguished name ,dn)(相当于一个表中的唯一标识字段)。通过dn的层次型语法结构,可以方便地表示出条目在ldap树中的位置,通常用于检索。

rdn:一般指dn逗号分隔的最左边部分,如cn=dev1。

它与rootdn不同,rootdn通常与rootpw同时出现,是指管理ldap中信息的最高权限用户。

base dn:ldap目录树的最顶层,也是根节点,即“base dn”,例如"dc=landingzone,dc=com"。

each entry can have many properties (attributes), such as common attributes like name, address, phone, etc. each property has a name and a corresponding value, and the property value can be single or multiple, for example, you may have multiple email addresses.

properties are not defined randomly but need to follow certain rules, and these rules can be specified through a schema. for example, for the type posixgroup, property modifications should be like this:

objectclass: indicates the type of this entry, which is defined by the schema and specifies the required properties. more properties can be added to this entry later on for extension.

ldap provides properties (e.g. commonname, surname) for the common objects in the organizational structure of personnel. below are some commonly used aliases:

attribute

alias

syntax

description

value (example)

commonname

cn

directory string

name

sean

surname

sn

directory string

surname

chow

organizationalunitname

ou

组织单位名

it_section

organization

o

组织名称

example

telephonenumber

电话号码

110

objectclass

内置属性

organizationalperson

对象类是属性的集合,ldap预想了很多人员组织机构中常见的对象,并将其封装成对象类。

例如:

人员(person)含有姓(sn)、名(cn)、电话(telephonenumber)、密码(userpassword)等属性

单位职工(organizationalperson)是人员(person)的继承类,除了上述属性之外还含有职务(title)、邮政编码(postalcode)、通信地址(postaladdress)等属性。

通过对象类可以方便的定义条目类型。每个条目可以直接继承多个对象类,这样就继承了各种属性。如果2个对象类中有相同的属性,则条目继承后只会保留1个属性。对象类同时也规定了哪些属性是基本信息,必须含有(must
活required,必要属性):哪些属性是扩展信息,可以含有(may或optional,可选属性)。

对象类有三种类型:结构类型(structural)、抽象类型(abstract)和辅助类型(auxiliary)。结构类型是最基本的类型,它规定了对象实体的基本属性,每个条目属于且仅属于一个结构型对象类。抽象类型可以是结构类型或其他抽象类型父类,它将对象属性中共性的部分组织在一起,称为其他类的模板,条目不能直接集成抽象型对象类。辅助类型规定了对象实体的扩展属性。每个条目至少有一个结构性对象类。

对象类(objectclass)、属性类型(attributetype)、语法(syntax)分别约定了条目、属性、值

值的类型约束

分布式ldap 是以明文的格式通过网络来发送信息的,包括client访问ldap的密码(当然一般密码已然是二进制的),ssl/tls 的加密协议就是来保证数据传送的保密性和完整性。

sasl
(simple authenticaion and security
layer)简单身份验证安全框架,它能够实现openldap客户端到服务端的用户验证,也是ldapsearch、ldapmodify这些标准客户端工具默认尝试与ldap服务端认证用户的方式(前提是已经安装好
cyrus sasl)。sasl有几大工业实现标准:kerveros v5、digest-md5、external、plain、login。

kerveros
v5是里面最复杂的一种,使用gssapi机制,必须配置完整的kerberos
v5安全系统,密码不再存放在目录服务器中,每一个dn与kerberos数据库的主体对应。digest-md5稍微简单一点,密码通过saslpasswd2生成放在sasldb数据库中,或者将明文hash存到ldap
dn的userpassword中,每一个authid映射成目录服务器的dn,常和ssl配合使用。参考
将 ldap 客户端配置为使用安全性。

ldif(ldap data interchange format,数据交换格式)是ldap数据库信息的一种文本格式,用于数据的导入导出,每行都是“属性: 值”对。

ldap=目录数据库 访问协议。因此要实现ldap登录,首先要搭建一套自己的ldap服务器,以供开发过程的自测,以及提测后的测试。然而ldap服务器厂商众多,本次主要挑选linux环境的openldap服务器,搭建过程和遇到的一些问题总结如下。

  • 准备一台linux主机并安装有docker环境。建议直接购买一台云服务器,镜像可以选择如docker运行环境(centos7.2 64位),这样自带docker环境免安装。
docker run --name ldap-server 
        --hostname ldap-server 
		-p 389:389 -p 636:636 
		--detach 
		osixia/openldap:latest

这个镜像是使用了自签凭证,使用 tls 方式連線時會出現遠端憑證無效的錯誤。解决办法:

1、執行 docker cp
ldap-server:/container/service/slapd/assets/certs/ldap.crt . 將自動產生的
自簽憑證複製到本機的當前目錄中。

2、安裝 ldap.crt 憑證到本機中,並設定為信任憑證 (或單獨設定信任 x509 初級規則)。

如果不想使用默认的凭证,也可以自动生成。比如通过openssl自签名生成。另外这个镜像的证书位置

ca 憑證檔案路徑:/container/service/slapd/assets/certs/ca.crt
ldap 憑證檔案路徑:/container/service/slapd/assets/certs/ldap.crt
ldap 憑證 key 檔案路徑:/container/service/slapd/assets/certs/ldap.key

通过这个命令,创建出来的openldap会有几个默认参数

port: 389 / 636 (tls)
admin dn: cn=admin,dc=example,dc=org
admin password: admin

1、通过openssl生成私钥

openssl genrsa -out server.key 1024

2、根据私钥生成证书申请文件csr

openssl req -new -key server.key -out server.csr

ps:common name可以输入:.yourdomain.com,这种方式生成通配符域名证书

3、使用私钥对证书申请进行签名从而生成证书

openssl x509 -req -in server.csr -out server.crt -signkey server.key -days 3650
docker run --name ldap-server --hostname ldap-server -p 389:389 -p 636:636 --volume  /path/ssl:/container/service/slapd/assets/certs --detach osixia/openldap:latest

通过-v 挂载宿主机的目录到容器进而完成使用自定义证书。

ldap_organisation:設定 ldap 的組織名稱,預設為 example inc.。

ldap_domain:設定 ldap 的組織域名,預設為 example.org。

ldap_admin_password:設定 ldap 的管理員密碼,預設為 admin。

ldap_tls_verify_client:設定 ldap 是否驗證客戶端憑證,如想關掉可以設為 try,預設為 demand。

ldap_tls_crt_filename:ldap ssl 憑證檔案名稱,預設為 ldap.crt。

ldap_tls_key_filename:ldap ssl 憑證 key 檔案名稱,預設為 ldap.key。

ldap_tls_ca_crt_filename:ca 憑證檔案名稱,預設為 ca.crt。

为了简化后续操作,我们需要关闭tls认证。下面是启动指令:

docker run --name ldap-server --hostname ldap-server -p 389:389 -p 636:636  -e ldap_tls_verify_client="try" -e ldap_domain="landingzone.com" -e ldap_admin_password="admin1" --detach osixia/openldap:latest
docker run --name ldap-admin -p 6443:443 --link ldap-server:ldap-host --env phpldapadmin_ldap_hosts=ldap-host --detach osixia/phpldapadmin:latest

如果是本地的话那就可以直接浏览器访问:https://localhost:6443 就可以打开界面了。相关登录账号与密码:

admin dn(用户名): cn=admin,dc=landingzone,dc=com

admin password(密码): admin1

登录成功的界面

这个操作可以添加内部组织与员工信息,包括ou、group和account等内容。

  • pg麻将胡了模拟器的版权说明:
  • 本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 295052769@qq.com 举报,一经查实,本站将立刻删除。