`
lvhuiqing
  • 浏览: 257963 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

LDAP SCHEMA DESIGN(三)

阅读更多

3.2 Do not modify the standard schema definitions(不要修改标准schema定义)
The set of attributes and object classes described in the LDAP RFCs sometimes appear to be rather awkward. This is not surprising, as they were derived from many different postal and telecomms standards, and new ones were created whenever the early directory service developers found a new requirement. As a result, people are often tempted to “tidy up” or “correct” the standard schema. This is a Bad Idea, as knowledge of the standard attributes is embedded in many widely used products. To make matters worse, many product authors have created their own overlapping or conflicting attribute sets to enrich the “addressbook experience”.
Fortunately, the better LDAP clients can be configured to use whatever attributes you want so it is often best to ignore the more broken parts of the standard set and create your own replacements. Some clients cannot cope with this, so it is worth finding out what you have to support and how flexible it is.
在LDAP RFC中出现的属性和object class有时候会显得非常尴尬。这一点儿都不奇怪,因为这些属性和object class是从不同的邮政电信标准演化而来的。随着新需求的出现,新的属性和object class被建立起来,这导致人们总是去试图整理和修正标准schema。这无疑是一个坏主意:因为标准attribute是作为一种约定俗成而嵌入到很多产品中。更为糟糕的是:很多产品的作者创建了只属于他们自己的属性集来丰富“addressbook experience”,而这些属性集经常会与标准属性集重叠甚至冲突。
幸运的是,比较好的LDAP客户端可以配置成可以使用任意的属性集,在这种情况下,自豪不要使用标准集中的那些“损坏的”部分,而自定义自己的属性集。某些客户端则不能做到自定义,那就必须花时间找出必须要支持的部分以及弹性如何。
3.3 Beware the Structural Object Class(留意结构性的object class)
Every entry has a Structural object class. This defines its fundamental characteristics, and cannot be changed once the entry has been created. If you define new attributes, or want to combine existing ones in new ways, you will need to create new object classes that allow this to happen. Most of the examples in the standards show this being done by subclassing existing object classes, but this creates problems. The LDAP standard diverged from X.500 just before the development of X.500 (1993), and has adopted parts of the later versions piecemeal. One of the later innovations was to split object classes into three types and to tighten the rules on how they could be combined. LDAP servers have now started to enforce these rules, and as a result the over-use of structural object classes can seriously limit the flexibility of a directory service.
所有的实体都拥有一个结构性的object class。这个object class定义了其基础属性。一旦该实体被建立,其object class不能被修改。如果你要定义新的属性,或者想把已经存在的属性重新组合,你需要定义新的object class才能实现。很多标准示例显示可以通过subclassing来实现,但是这会带来问题:LDAP起源于X.500的初始阶段而且采用了了很多X.500后来版本的特性。其中的最新的变革是将object class分为三类,而且规定了他们是否可以组合。LDAP服务器现在开始强制实行这些规则,这会导致结构性object class过多使用会严重限制目录服务的可扩展性。
I recommend that you pick a well-understood structural class for each type of entry, and then add Auxiliary object classes where needed. The rules for combining these are much simpler, and they can be added to existing entries or removed if desired. Some reasonable structural classes are:
Object Structural class
Person inetOrgPerson
Role organizationalRole
Department organizationalUnit
Organisation organization
你最好为每个实体选择一个容易理解的结构性object class,然后在需要的情况下添加辅助性的object class。针对组合的规则应该尽量做到简单,这样他们可以被加到已经存在的实体上,或者在需要的时候被移除。一些容易理解的结构性class如下:
4 DIT Layout
4.1 Top levels
The standards place very few restrictions on the form of the DIT, though if it is to be used with common client software there are some conventions that should be observed. There are two common forms used for the higher levels in the tree: geographic and domain-based. The geographic form was used in all examples in the original X.500 standards, as it is most suitable for global-scale “white pages” searching. Domain-based trees were introduced later, partly so that installers could avoid dealing with country-level registration authorities and partly to provide a simple way to map Internet domain names into the DIT. The two forms are shown in Figure 1.
DIT的形式,没有多少必须遵循的规范可言。如果一些普通的客户端软件来使用DIT的话,有一些约定需要注意。DIT的较高层次有两种常见形式:基于地理位置和基于域。在最初的X.500规范中,全部使用地理模式,这种模式比较适用于全球范围内的文本搜索。基于域的树出现的比较晚,这种树的一个有优点是:这样以来安装者可以处理国家层面的注册认证,另一方面可以提供一种将Internate域名映射到DIT的简单方法。
For an isolated directory system it makes little difference which form is chosen, though it is always wise to choose a base name that will not clash with any other directories that might get linked in future. The two forms can co-exist under the same virtual root if required. For most “internal” directory services, the Domain Component tree is the better choice. There is a direct mapping between DNS names and the upper levels of the tree, which allows the address of the LDAP server to be stored in the DNS and can make client configuration simpler. I generally recommend carrying the DC names down into the “local” part of the tree, as this makes it easier to divide the tree among several servers if required.
Our Example Organisation owns the domain name example.org so we will choose
ds.example.org as the base for the directory service. This translates to an LDAP suffix of dc=ds,dc=example,dc=org
对于一个独立的目录系统而言,选择什么形式影响不大。只要能保证名称不与未来可能有联系的目录系统不发生冲突即可。如果需要的话,两种形式可以在同一虚拟根目录下共存。对于大多数“网络”目录服务而言,基于域的树是比较好的选择。在DNS系统中保存的dns名称与树的较高层次存在映射的话,这样可以使得LDAP地址保存在dns中,从而使得客户端配置变得容易一些。强烈推荐将DC放到树的local部分,这样一来可以很容易在需要的情况下把一棵树分成几个独立的Server。
我们的示例组织拥有example.org的域名,因此,我们将会选择ds.example.org作为目录服务的基础。该域名翻译成LDAP前缀是dc=ds,dc=example,dc=org。

分享到:
评论

相关推荐

    LDAP SCHEMA DESIGN

    ### LDAP Schema Design详解 #### 一、概述 LDAP(Lightweight Directory Access Protocol)是一种用于访问目录服务的标准协议,被广泛应用于各种场景下的人、组织、角色和服务等实体的信息管理。由于其标准化特性...

    extman-1.0

    o LDAP/MySQL backend support, with extmail offical schema/SQL o Security enhanced via usertype permission check o Support Netdisk quota management o Support domain, user quota management, need ...

    【算法与数据结构】力扣763划分字母区间:C++实现字符串分割算法解析与代码示例

    内容概要:文章主要讲解了力扣763题——划分字母区间的解法。题目要求对字符串进行划分,使得每个字母只出现在一个子串中,并且这些子串是连续的。文中详细解释了算法的核心思想:从字符串的第一个字符开始,找到该字符最后一次出现的位置作为初始区间边界;然后遍历该区间内的所有字符,不断更新区间的右边界为当前字符最后出现位置的最大值,直到遍历结束,即得到一个完整的区间。最后通过示例代码演示了这一思路的具体实现方法,包括输入字符串、计算各字符最远出现位置、确定区间长度并输出结果等步骤。; 适合人群:对算法和数据结构有一定了解,特别是正在准备编程竞赛或面试的程序员。; 使用场景及目标:①理解划分字母区间的贪心算法思想;②掌握如何通过查找字符最后出现位置来构建不重叠的最优区间;③学习C++语言中字符串操作函数如rfind()的应用; 阅读建议:在阅读时应重点关注算法的设计思路及其背后的逻辑,同时注意代码细节,如循环条件、边界处理等,可以尝试自己动手实现一遍加深理解。

    base(1).apk.1

    base(1).apk.1

    (源码)基于C语言的STM32开发板功能支持库.zip

    # 基于C语言的STM32开发板功能支持库 ## 项目简介 本项目是针对STM32微控制器的开发板支持库,涵盖多种功能模块,像GPIO控制、LCD驱动、串行通信等。为开发者提供丰富库函数与示例代码,简化STM32微控制器开发流程。 ## 项目的主要特性和功能 1. GPIO控制可进行GPIO初始化、配置、读写及引脚锁定,方便控制引脚状态。 2. LCD驱动支持多种LCD型号,能完成初始化、设置颜色、显示字符、绘制图形等操作。 3. 串行通信提供串行通信端口初始化、配置与通信功能,支持USART等协议。 4. IO扩展器支持STMPE811等IO扩展器驱动,具备IO读写、Joystick配置等功能。 5. 时钟管理可进行系统时钟配置与管理,包括时钟源选择、分频因子设置。 6. 任务调度实现实时多任务操作系统(uCOS II)核心功能,如任务创建、删除等。 7. 同步机制提供事件标志、消息邮箱、互斥锁、队列和信号量等同步机制,用于任务间通信与同步。

    (源码)基于Linux内核的MaliG610 GPU模拟及性能分析系统.zip

    # 基于Linux内核的MaliG610 GPU模拟及性能分析系统 ## 项目简介 本项目名为kbasevalhall,主要用于模拟一个MaliG610(用于RK3588)GPU。它提供了创建和初始化时间线对象的功能,可用于跟踪和记录GPU设备的状态与操作序列,为GPU的性能分析和调试提供有效工具。 ## 项目的主要特性和功能 1. 模拟MaliG610 GPU通过项目代码可以模拟出MaliG610 GPU,为相关开发和测试提供环境。 2. 时间线对象管理创建并初始化多种时间线对象,如逻辑处理单元(LPU)、地址空间(AS)和GPU对象等,用于跟踪GPU设备状态。 3. 上下文跟踪遍历设备中的所有上下文,为每个上下文创建新的时间线对象,跟踪地址空间分配和内核处理器队列状态信息。 4. 数据传输刷新所有流,确保摘要包传输到用户空间,方便应用程序访问GPU性能数据。

    (源码)基于Arduino的恐龙游戏.zip

    # 基于Arduino的恐龙游戏 ## 项目简介 此项目是一个基于Arduino的恐龙游戏版本开发。包含了与游戏角色、场景元素相关的图形定义文件。通过二进制形式定义了游戏角色(如恐龙、角色腿等)以及场景元素(如云)的形状。这些图形定义被存储在AVR微控制器的PROGMEM中,用于游戏或应用程序的开发。 ## 项目的主要特性和功能 1. 图形定义项目包含多个图形定义文件,用于描述游戏角色和场景元素的形状。 2. 二进制图形表示所有的图形数据都以二进制形式存储,适用于在AVR微控制器上运行的游戏或应用程序。 3. 游戏角色和场景元素包括恐龙角色的主要形状、腿的形状,以及不同大小的云等场景元素。 ## 安装使用步骤 由于此项目为源码文件,用户已经拥有项目的全部代码,接下来可以按照以下步骤进行安装和使用 1. 导入源码将源码文件导入Arduino开发环境。 2. 修改和优化根据需要进行修改和优化代码,以适应特定的硬件或功能需求。

    (源码)基于AVR单片机的自动搅拌杯系统.zip

    # 基于AVR单片机的自动搅拌杯系统 ## 项目简介 本项目针对传统手动搅拌杯需频繁按压按钮搅拌饮品的不便,利用AVR单片机(ATtiny13和ATmega328p)打造了自动搅拌杯系统。该系统通过简单电路控制电机和LED灯,实现自动搅拌功能,同时具备低功耗特性,延长电池使用寿命。 ## 项目的主要特性和功能 1. 多模式自动搅拌可通过按钮切换不同的搅拌模式,如电机持续开启、每隔30秒开启5秒、每隔1分钟开启5秒、每隔1分30秒开启5秒等。 2. LED状态指示LED灯以不同频率闪烁,直观显示当前的工作模式。 3. 低功耗运行在Power Down模式下,ATtiny13仅消耗0.5uA电流,确保长时间闲置时电池电量的有效保存。 4. 时间可调节能够通过修改代码中的相关参数,灵活调整电机搅拌时间和LED闪烁时间。 ## 安装使用步骤 ### 安装

    (源码)基于Node.js和IoT的心率监测系统.zip

    # 基于Node.js和IoT的心率监测系统 ## 项目简介 基于Node.js和IoT的心率监测系统是一个低成本的物联网(IoT)应用,旨在全天候监测用户的心率和血氧饱和度。该系统通过心率和血氧传感器定期提醒用户进行测量,并将数据传输到Web应用程序中供用户查看。用户可以配置测量时间和频率,Web应用程序采用响应式设计,支持桌面、平板和移动设备。 ## 项目的主要特性和功能 IoT集成使用低成本的IoT设备与心率和血氧传感器协同工作。 周期性提醒全天候提醒用户在可配置的时间间隔内进行测量。 响应式设计Web应用程序设计为在不同设备上提供一致的用户体验。 数据传输和监控测量数据传输到Web应用程序,供用户监控。 ## 安装使用步骤 ### 1. 复制项目仓库 bash ### 2. 进入项目目录 bash cd 413FinalProject ### 3. 安装依赖 bash

    基于LaTeX的Python与Shell脚本个人简历设计源码

    该项目是一个基于LaTeX的个人简历设计源码,集成了Python和Shell脚本功能,共包含54个文件,包括14个OTF字体文件、8个样式文件、8个TeX源文件、6个PDF文档、5个GZ压缩文件、2个JPG图片文件、1个BST模板文件、1个LICENSE授权文件、1个Makefile构建文件、1个Markdown文件。该项目适用于个人简历制作,提供专业的排版和个性化设计。

    FLAC 3D流固耦合技术在近断层隧道围岩稳定性分析中的应用及代码解析

    内容概要:本文详细介绍了利用FLAC 3D进行近断层隧道围岩稳定性的流固耦合分析方法。首先构建了三维网格并设置了摩尔-库仑本构模型和相关材料参数,接着对断层带进行了特殊处理,降低了其力学性能。文中重点讲解了流固耦合的具体设置步骤,包括开启流体模式、设置水的物理属性以及孔隙水压初始化等。此外,还展示了如何通过历史记录和绘图功能监控计算过程中的重要参数变化,并提供了防止数值不稳定的经验建议。最后,作者分享了一个实际案例,强调了流固耦合分析对于提高隧道安全性和优化设计方案的重要性。 适合人群:从事地下工程、岩土工程领域的研究人员和技术人员,尤其是那些需要掌握复杂地质条件下隧道稳定性评估技能的专业人士。 使用场景及目标:适用于研究和解决靠近断层带的隧道工程项目中存在的围岩失稳风险问题,旨在帮助工程师更好地理解和预测隧道在渗流水作用下的行为,从而制定合理的支护措施。 其他说明:文章不仅涵盖了理论知识,还包括大量实用的操作技巧和注意事项,有助于读者将所学应用于实际工作中。同时,文中提供的完整代码片段便于读者动手实践,加深理解。

    2001-2023年 上市公司-数字化转型工具变量

    数字化转型是指企业或个人利用数字技术,如大数据、云计算、人工智能等,对其业务流程、运营模式、决策方式等进行全面、深入的变革,以提高效率、降低成本、提升质量、增强竞争力。在这个过程中,工具变量扮演着至关重要的角色。 本数据包含:原始数据、参考文献、代码do文件、最终结果。 指标 企业代码 企业代码 年份 股票简称 企业数字化转型程度。基于吴非方法构建 工具变量:同行业其他企业数字化转型程度的均值 工具变量:同行业数字化转型程度的均值 工具变量:同行业同年份其他企业数字化转型程度的均值 工具变量:同行业同年份数字化转型程度的均值 工具变量:同地区同行业同年份数字化转型程度的均值 工具变量:同地区同行业同年份其他企业数字化转型程度的均值 行业名称 制造业取两位代码,其他行业用大类

    bellsoft-jdk17.0.15+10-windows-amd64.msi

    BellSoft Liberica JDK 是一个经过严格测试和验证的 OpenJDK,它完全符合 Java SE 规范,在Linux, Windows, macOS, 和 Solaris 操作系统上运行无误

    (源码)基于Azure和Kubernetes的乐高小人检测系统.zip

    # 基于Azure和Kubernetes的乐高小人检测系统 ## 项目简介 本项目是一个基于Azure和Kubernetes的乐高小人检测系统。项目结合了Azure机器学习服务进行模型训练和部署,利用Kubernetes进行集群管理和容器编排。通过ESP32CAM或树莓派作为图像采集设备,将采集到的图像发送到模型进行检测,并通过一个简单的网页展示检测结果。 ## 项目的主要特性和功能 1. 基础设施搭建支持Kubernetes集群和Azure环境的搭建,包括资源组、日志分析工作区、Arc连接的Kubernetes等资源的创建。 2. 模型训练使用Azure机器学习服务进行模型训练,支持自动机器学习(AutoML)功能,可同时尝试多种模型和超参数组合,提高模型性能。 3. 图像采集支持使用ESP32CAM或树莓派进行图像采集,并将采集到的图像存储到Kubernetes主节点。 4. 对象检测使用训练好的模型对采集到的图像进行乐高小人检测,并在网页上展示检测结果。

    h5py-3.1.0-cp36-cp36m-macosx_10_9_x86_64.whl

    该资源为h5py-3.1.0-cp36-cp36m-macosx_10_9_x86_64.whl,欢迎下载使用哦!

    【GitHub代码托管平台】从入门到精通:涵盖注册、仓库创建、客户端配置、SSH密钥设置、代码管理全流程及协作开发技巧

    内容概要:本文详细介绍了GitHub从入门到精通的各个方面,涵盖新手指南、核心操作、进阶技巧、实用工具与资源推荐以及常见问题解决方案。新手指南部分讲述了如何注册账号、创建仓库、安装配置客户端及SSH密钥配置;核心操作部分重点讲解了本地仓库初始化、版本提交与推送、文件状态与历史查看;进阶技巧部分探讨了分支管理策略、协作开发流程及冲突解决方法;实用工具与资源推荐部分介绍了GitHub Actions、GitHub Pages、GitHub Copilot等官方工具链,以及多个优秀学习资源库;常见问题解决方案部分则提供了关于权限问题处理和代码回滚方法的具体步骤。 适合人群:适用于初次接触GitHub的新手开发者,以及希望深入了解GitHub高级功能、提高团队协作效率的中高级开发者。 使用场景及目标:①帮助新手快速上手GitHub,掌握创建和管理仓库的基本技能;②教会用户如何进行版本控制、提交代码、查看历史记录等核心操作;③指导开发者进行高效的分支管理和团队协作,解决冲突并优化工作流程;④推荐实用工具和学习资源,提升开发效率和个人技能;⑤解决权限和代码回滚等常见问题,确保项目顺利进行。 阅读建议:本文内容详实,覆盖范围广,建议读者根据自身需求选择性阅读。对于初学者,可以从新手指南开始逐步学习;对于有一定经验的开发者,可以直接跳转到感兴趣的部分,如进阶技巧或实用工具章节。在学习过程中,结合实际操作进行练习,以加深理解和记忆。

    生物医学信号处理:Matlab实现心电信号ECG去噪的低通滤波与小波分解方法

    内容概要:本文深入探讨了心电信号(ECG)去噪的技术实现,特别是在生物医学信号处理领域的应用。文中介绍了两种主要的去噪方法:低通滤波和小波分解。首先,通过低通滤波器去除高频噪声如肌电干扰和工频干扰,保留低频的心电信号特征。其次,利用小波分解将信号分解到不同频率子带,通过阈值处理去除噪声并重构信号。此外,还展示了如何在Matlab中实现这些方法,并提供了详细的代码示例。为了增强用户体验,作者还开发了一个带有操作界面的工具,支持时域和频域波形的显示,并附有操作视频。 适合人群:从事生物医学工程、信号处理的研究人员和技术人员,尤其是那些对心电信号处理感兴趣的初学者和中级开发者。 使用场景及目标:适用于需要对心电信号进行预处理的研究和应用场景,如医疗设备开发、健康监测系统等。目标是提高心电信号的质量,减少噪声干扰,从而提升后续分析的准确性。 其他说明:文中不仅提供了理论解释,还有具体的代码实现和操作指南,帮助读者更好地理解和应用这些技术。

    基于Comsol的圆柱卷绕式锂电池结构与性能仿真分析

    内容概要:本文详细介绍了圆柱卷绕式锂电池的结构特点及其在Comsol Multiphysics中的建模与仿真方法。文章首先阐述了圆柱卷绕式电池的基本构成,包括正极、负极、隔膜、集流体和极耳的作用。接着,通过具体的Comsol建模步骤,如导入几何模型、定义材料属性、设置边界条件、模拟电流分布等,展示了如何利用Comsol进行电池性能的仿真分析。特别强调了极耳设计对电池性能的重要影响,并通过实例演示了如何优化极耳布局以提高电池效率。此外,文章还探讨了多物理场耦合仿真在电池热管理和电流分布优化中的应用。 适合人群:从事电池研究、仿真分析的技术人员以及对锂电池建模感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解圆柱卷绕式锂电池内部结构和工作原理的研究人员和技术人员。通过仿真分析,能够优化电池设计,提高电池性能,特别是在极耳布局和热管理方面。 其他说明:文中提供了多个Comsol建模的具体代码示例,有助于读者快速上手并进行实际操作。同时,文章还讨论了一些常见的建模难题及解决方案,如薄层网格划分和多物理场耦合等问题。

    【信息安全领域】实战项目汇总:涵盖渗透测试、Web安全加固、企业安全策略、恶意软件分析等关键领域防护措施

    内容概要:本文列举了多个信息安全领域的实战项目,涵盖网络渗透测试、Web应用安全加固、企业安全策略制定与实施、恶意软件分析、数据泄露应急响应、物联网设备安全检测、区块链安全审计以及云安全防护等八大方面。每个项目均明确了具体的目标和详细的步骤,旨在发现并修复系统中存在的安全隐患,提升系统的安全性和稳定性,确保企业信息资产的安全。; 适合人群:信息安全从业者、网络安全工程师、系统管理员、安全顾问等关注信息安全的专业人士。; 使用场景及目标:适用于需要进行网络安全评估、Web应用防护、企业安全策略规划、恶意软件防范、数据泄露处理、物联网设备保护、区块链系统审计及云安全建设等不同场景,目标是通过一系列具体的项目实施,帮助企业或组织提高信息安全防护水平,降低安全风险。; 阅读建议:由于涉及多个信息安全实战项目,建议读者根据自身需求选择感兴趣的项目深入研读,重点关注各项目的具体实施步骤和技术细节。同时,结合实际工作中的应用场景,将理论知识应用于实践,提升信息安全防护能力。

Global site tag (gtag.js) - Google Analytics