前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LDAP 管理用户(组)

LDAP 管理用户(组)

作者头像
菲宇
发布2019-06-12 12:10:34
3.9K0
发布2019-06-12 12:10:34
举报
文章被收录于专栏:菲宇菲宇

LDAP实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。

使用场景 有两个系统A,B;需要把A系统创建的用户同步到B中,而B是个apache 开源项目,此时需要借助LDAP来解决。首先在A中建用户的同时,同步更新到LDAP中,然后B系统从LDAP中同步到自己的系统中,这样就实现了A中的用户到B系统的同步。

LDAP理解 在LDAP中,信息以树状方式组织,基本数据单元是条目,而每个条目由属性构成,属性由类型(Type)和一个或多个值(Value)组成。

  • Entry

包含的信息描述了现实世界中的一个真实的对象,在目录系统中可以理解为一个节点。在目录中添加一个Entry时,该Entry必须属于一个或者多个对象类(Oject Class),Entry的类型由属性Object Class规定。每个Entry都有一个唯一的DN(distinguished name)来标识Entry在directory中的位置。用Java的方式Entry相当于一个Instances,而Ojbect class自然就是Class。

根节点DN的命名有多种方法,其中之一就是域名命名法,例如sohu.com根阶节点的DN应该是DN:dc=sohu,dc=com,People节点的DN:ou=People,dc=example,dc=com,RDN是目录树中节点的相对标识,例如People节点的RDN:ou=people。

  • Attribute

每个Entry都是由许多Attribute组成,每个属性描述的是对象的一个特征,每个属性由一个类型和一个或多个值Value组成。 每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。 常见属性:

Attribute type

Attribute value

c

国家

dc

domain component,常用来指一个域名的一部分

cn

common name,一个对象的名字,如果指人,使用全名

ou

一个组织单元的名字

sn

Surname,一个人的姓

uid

Userid,某个用户的登录名,与Linux系统中用户的uid不同

o

组织的名字

  • Object class

在LDAP中,一个条目必须包含一个Oject class属性,且需要赋予至少一个值。每个值将用作一条LDAP条目进行数据存储的模板,模板中包含了一个条目必须被赋值的属性和可选的属性。 Object分为三类,结构型(Structural),如Person和orginzationUnit,辅助型(Auxiliary),如extensibeObject,抽象型(Abstract):如top,抽象型的ObjectClass不能直接使用。 下面部分常用的ObjectClass,定义在/etc/openldap/schema/core.schema文件中

名称

描述

必要属性

domain

organization

o

organizationalUnit

ou

person

sn,cn

organizationPerson

cn,sn

top

抽象型,顶级ObjectClass

posixAccount

Linux用户

cn,gidNumber,homeDirectory,uid,uidNumber

posixGroup

Linux用户组

cn,gidNumber

- Entry必须仅包含一个Structural类型的OjectClass,其他两种类型可包括0或者多个。

LDAP 功能模型

描述LDAP 协议可以采用的相关操作,来访问存储在目录树中的数据,可以将操作分 成三组: (1) 更新操作 包括添加,删除,重命名,修改Entry (2) Interrogation Operation 用于数据的查询 (3) 认证和控制 (bind unbind abandon)

LDAP 安全模型

(1) 提供一个框架,包含目录中的信息不被非法访问,LDAP 的安全模型主要是通过身份认 证、安全通道和访问控制(ACL)来实现。 (2) LDAP 是一个面向连接的协议,在能够对LDAP 目录进行任何操作之前,LDAP 客户端 端必须获得一个到LDAP 服务端的一个连接,在这个过程中需要对LDAP 客户端的身份进 行验证(可以理解为用户绑定)。 (3) 在用户通过验证之后,为用户分配附加的权限,比如一些用户只能查看特定的Entry,而不能修改。一些用户可以查看并且修改所有的Entry等。

Ldap Server 安装使用

安装OpenLDAP

1、安装OpenLDAP相关软件

yum install openldap openldap-servers openldap-devel openldap-clients cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

2、配置/etc/openldap/slapd.conf

修改下面配置: suffix “dc=xhh,dc=com” rootdn “cn=Manager,dc=xhh,dc=com” rootpw 123456

找到access to的位置,添加如下配置: access to attrs=shadowLastChange,userPassword by self write by * read by * auth access to * by * read

3、修改文件及目录权限 chown -R ldap:ldap /etc/openldap/* chown ldap:ldap /var/lib/ldap/* chmod 755 /etc/openldap/slapd.d/cn=config 重启openldap:/etc/init.d/slapd start

4、初始化 rm -rf /etc/openldap/slapd.d/* slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d chown -R ldap:ldap /etc/openldap/* 重启:/etc/init.d/slapd restart

OpenLDAP使用 添加用户: vim init.ldif

dn: dc=xhh,dc=com objectClass: top objectClass: domain

dn: ou=users,dc=xhh,dc=com objectClass: organizationalUnit objectClass: top ou: users

dn: cn=xhhtest,ou=users,dc=xhh,dc=com objectClass: person objectClass: top cn: xhhtest sn: xhhtest

ldapadd -x -D “cn=Manager,dc=xhh,dc=com” -w 123456 -f init.ldif

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LDAP 功能模型
  • LDAP 安全模型
  • Ldap Server 安装使用
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档