`

LDAP定义schema详解

    博客分类:
  • LDAP
阅读更多

 
schema类似关系数据库的字段说明,包括字段名,数据类型,数据长度等等。系统有一些默认的schema,我的默认schema文件
在/usr/local/openldap/etc/openldap/schema下面,最重要的是core.schema。它定义了一些最基本的字段。
为了适应我们的应用,我们要创建自己的schema文件。我创建的shema文件如下:(文件名:kunmail.schema)

# 
# kunmail-ldap v3 directory schema 
# 
# written by hefish@cz8.net 
# 
# Attribute Type Definitions 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.1 NAME 'username' 
DESC 'name of the user on the mailsystem' 
EQUALITY caseIgnoreIA5Match 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.2 NAME 'vuid' 
DESC 'UID of the user on the mailsystem' 
EQUALITY integerMatch 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.3 NAME 'vgid' 
DESC 'GID of the user on the mailsystem' 
EQUALITY integerMatch 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'maildir' 
DESC 'Path to the maildir/mbox on the mail system' 
EQUALITY caseExactMatch 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.5 NAME 'forwardAddr' 
SUBSTR caseIgnoreSubstringsMatch 
DESC 'Forward mail address' 
EQUALITY caseIgnoreIA5Match 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.6 NAME 'quota' 
DESC 'The amount of space the user can use until all further messages get bounced.' 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.44 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.7 NAME 'storeHost' 
DESC 'On which kunmail server the messagestore of this user is located.' 
EQUALITY caseIgnoreIA5Match 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.8 NAME 'delivery' 
DESC 'Program to execute for all incoming mails.' 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.9 NAME 'clearpw' 
DESC 'name of the user on the mailsystem' 
EQUALITY caseIgnoreIA5Match 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.10 NAME 'home' 
DESC 'Program to execute for all incoming mails.' 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.11 NAME 'mailReplyText' 
DESC 'A reply text for every incoming message' 
SUBSTR caseIgnoreSubstringsMatch 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{4096} 
SINGLE-value ) 
attributetype ( 1.3.6.1.4.1.7914.1.2.1.12 NAME 'active' 
DESC 'The status of a user account: active, nopop, disabled' 
EQUALITY integerMatch 
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 
SINGLE-value ) 
# Object Class Definitions 
objectclass ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'kunmailUser' 
DESC 'KunMail-LDAP User' SUP top STRUCTURAL 
MUST ( username $ cn $ vuid $ vgid ) 
MAY ( maildir $ home $ clearpw $ 
forwardAddr $ quota $ 
storeHost $ delivery $ 
mailReplyText $ active ) ) 

 
现在来说说这个schema文件。
开始部分是attributeType的定义,相当于字段定义。最后的objectclass是定义数据所包含的属性。
这里kunmailUser这种数据,要包含maildir $ home $ clearpw $ forwardAddr $ quota $ storeHost $ delivery $ mailReplyText $ active
等可选项,还要包括username $ cn $ vuid $ vgid 必选项。 可选项用MAY()来包含,必选项用MUST()来包含。DESC是说明项。SUP表示父类(
有点像面向对象编程啊)top表示没有父类,他自己是顶级。STRUCTURAL是存储方式,不管他(我也说不清楚)
接下来解释attributeType的说明项。
第一个数字是表示序号,至少我是怎么认为的,也许不对,不过。。。管他。
NAME是表示属性的名字
DESC是说明
下面表示的是匹配的方式,SUBSTR是字符串匹配,EQUALITY是相等性匹配,这些在openldap的admin guide里面有,不难看懂
SYNTAX是表示字段的数据类型。这个admin guide里面也有说明。
SINGLE-value表示这个属性只有一个值,有些属性可以有多个值,比如联系地址等。默认的话,是多值的。

schema准备好之后,我们要在配置文件中,把这个schema包含进去,让这个schema生效。
在配置文件slapd.conf中间的开始部分加入这样的一句:
include /usr/local/openldap/etc/openldap/schema/kunmail.schema
应该注意,上面这句话之前应确保有一句:
include /usr/local/openldap/etc/openldap/schema/core.schema
因为kunmail.schema里面有些东西是依赖core.schema的。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chong232/archive/2008/04/07/2257234.aspx

分享到:
评论

相关推荐

    LDAP_Schema的概念和基本要素

    ### LDAP Schema的概念与基本要素详解 #### 一、引言 在现代企业级应用中,LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)作为一种高效、灵活且功能强大的目录服务标准,广泛应用于用户认证、...

    LDAP用户管理实战详解

    ### LDAP用户管理实战详解 #### 一、简介 在企业级应用中,LDAP(轻量级目录访问协议)被广泛用于用户身份验证和权限管理。本文档将通过一个实例程序来详细介绍如何安装配置OpenLDAP,并利用Java语言进行用户的...

    ldaf schema

    ### LDAP Schema设计详解 在企业级应用环境中,利用单一的LDAP目录服务器为多个应用程序提供服务是一种常见的实践方式。这一策略显著降低了数据维护的工作量,但同时也对目录的设计提出了更高的要求,尤其是在实施...

    ldap提示object class violation

    ### LDAP提示Object Class Violation详解 #### 一、问题背景 在LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)的使用过程中,有时会遇到一个常见的错误提示:“object class violation”。这一...

    openldap详解

    OpenLDAP 的 Schema 文件(如 `/etc/openldap/schema/*.schema`)定义了这些 objectClass 及其属性规范。 在 OpenLDAP 的配置文件 `slapd.conf` 中,可以包含多个 Schema 文件,如 `core.schema`、`cosine.schema` ...

    schema2ldif:模式2 ldif:用于将.schema转换为.ldif文件并将其管理到openldap服务器中的工具

    《OpenLDAP服务器中模式管理工具——schema2ldif详解》 在OpenLDAP系统中,管理目录服务的数据模型,即模式(Schema),是一项重要的任务。模式定义了目录中的对象类、属性类型、语法以及各种限制。当需要对模式...

    ldap开发指南

    LDAP信息模型详解 - **条目(Entries)**: LDAP目录中的基本单位,相当于数据库中的记录。每个条目可以包含多个属性。 - **属性(Attributes)**: 描述条目的特征,如姓名、邮箱地址等。 - **值(Values)**: 属性...

    LDAP技术,LDAP学习大全

    #### 第五章 LDAP程序访问技术详解 LDAP程序访问技术主要涉及使用各种编程语言和API来访问和操作LDAP目录服务。 ##### 第一节 Sun公司的JNDI与各厂商实现的LDAP函数库关系 JNDI (Java Naming and Directory ...

    LDAP使用手册

    ### LDAP使用手册知识点详解 #### 一、LDAP简介 **LDAP**(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种广泛应用于企业环境中的目录服务标准。它源自于更早的X.500标准,后者是由ITU-T和...

    LDAP 技术总结.

    **LDAP 技术详解** **一、X.500 目录服务与 LDAP 的起源** X.500 是一种基于 OSI 网络协议的目录服务标准,它为组织提供了一种集中存储和检索信息的方式。然而,由于 X.500 不支持广泛使用的 TCP/IP 协议,它在...

    PHP LDAP Guidance

    - **配置根目录**:修改`suffix`项以定义LDAP服务器的根目录,例如: ```conf suffix "dc=simon,dc=com" ``` - **管理员账号设置**:通过修改`rootdn`和`rootpw`来设置管理员账号及其密码,例如: ```conf ...

    LDAP安装说明-配合博客使用

    ### LDAP安装说明与配置详解 #### 一、LDAP简介 LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是一种基于TCP/IP的应用层协议,用于访问和管理分布式目录服务。它最初是作为X.500目录服务的一...

    基于LDAP的校园网统一身份认证系统设计.pdf

    #### LDAP协议详解 ##### 协议模型 LDAP采用客户端驱动的模型,客户端发起请求,服务器执行相应操作后返回结果。这一过程通过标准的服务端口号389上的TCP协议实现,省略了会话层和表示层,直接对接应用层,支持...

    ldap配置方法

    ### LDAP配置方法详解 #### 一、LDAP简介 **LDAP**(Lightweight Directory Access Protocol, 轻量目录访问协议)是一种应用层协议,主要用于管理和访问分布式目录信息。它基于X.500标准,但更加轻量级且可定制化。...

    RFC2256LDAPv3使用X500用户schema总结中文版

    3. **RFC2256详解**: RFC2256详细规定了LDAPv3的用户schema,包括对象类定义、属性类型、语法和约束。它提供了标准化的目录信息模型,确保不同系统间的数据互操作性。 4. **对象类(Object Classes)**: 在schema中,...

    LDAP Schemaconverter-开源

    **LDAP Schema Converter 开源工具详解** LDAP(轻量级目录访问协议)是一种广泛用于存储和检索目录信息的标准。在管理 LDAP 数据库时,有时需要将 LDAP 模式(Schema)从一种格式转换为另一种,以适应不同的 LDAP ...

    OPENLDAP文档

    - 添加额外的模式(schema)文件,这些文件定义了目录服务中可存储的不同类型的条目和属性。例如: ```plaintext include ./schema/corba.schema include ./schema/dyngroup.schema include ./schema/java.schema...

Global site tag (gtag.js) - Google Analytics