当前位置:首页 > 工业技术
活动目录编程指南
活动目录编程指南

活动目录编程指南PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)GilDirkpatrick著;谭郁松等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2001
  • ISBN:790063522X
  • 页数:590 页
图书介绍:本书系统、全面地介绍了有关活动目录的相关内容,分为5部分,分别详细介绍了活动目录的基本概念、安全性、活动目录结构和模式、配置命名上下文、域命名上下文等内容。
《活动目录编程指南》目录

第1部分 活动目录基础 3

第1章 网络目录介绍 3

1.1 什么是目录 3

1.1.1 简单目录 3

1.1.2 应用程序目录 3

1.1.3 独立网络目录 3

1.1.4 NOS集成的目录 4

1.1.5 全局目录 4

1.2 1999年是目录之年吗 4

1.3 为什么使用目录 5

1.3.1 一次登录 5

1.3.2 安全 5

1.3.3 设备识别和定位 6

1.3.4 位置无关 6

1.3.5 全局地址簿 6

1.3.6 简化管理 6

1.3.7 可靠性 6

1.3.8 服务质量和DEN计划 7

1.4 目录——技术的挑战 7

1.4.1 成功目录的要求 7

1.4.2 解决方法 8

第2章 活动目录介绍 10

2.1 活动目录:Windows 2000中的目录 10

2.1.1 基于标准的活动目录 10

2.1.2 可扩缩性 11

2.1.3 安全性 11

2.1.4 集成与可集成性 11

2.1.5 可扩展的模式 12

2.1.6 向后兼容 12

2.2 与Windows 2000的集成 12

2.3 与微软公司其他产品的集成 13

2.3.1 微软公司的Exchange 13

2.3.2 零管理视窗和活动目录 13

2.4 和其他目录服务的集成 13

2.5 活动目录与Windows NT 4域的比较 13

2.6 活动目录与Novell目录服务的比较 16

第3章 活动目录组件 18

3.1 活动目录的逻辑结构 18

3.1.1 活动目录是一个对象集合 18

3.1.2 对象类 18

3.1.3 属性和值 18

3.1.4 活动目录模式 20

3.1.5 目录信息树 20

3.1.6 识别目录对象 21

3.1.7 组织目录树 23

3.1.8 根域、域树和森林 24

3.1.9 域名系统和活动目录域 25

3.2 活动目录的物理结构 26

3.2.1 域控制器 26

3.2.2 划分和副本 27

3.2.3 全局类别 27

3.2.4 活动目录复制 27

3.2.5 活动目录站点 27

第4章 活动目录安全 29

4.1 Windows 2000安全概述 29

4.1.1 Windows 2000安全特征 29

4.1.2 Windows 2000安全系统的组成 30

4.1.3 缺省访问权限 47

4.1.4 评估访问权限 47

4.2 Windows 2000安全与活动目录 48

4.2.1 域控制器和本地安全授权 48

4.2.2 活动目录域 48

4.2.3 域信任 48

4.2.4 访问权限继承 49

4.2.5 缺省访问权限 50

4.2.6 缺省拥有者 51

4.2.7 属性和属性组访问权限 51

4.2.8 使用私有对象安全扩展Windows 2000安全 51

4.2.9 作为字符串的安全描述符 53

4.3 活动目录安全编程 56

4.3.1 活动目录安全属性 56

4.3.2 活动目录安全与LDAP 57

4.3.3 活动目录安全与ADSI 57

第5章 活动目录和DNS 58

5.1 DNS的起源和DNS基础知识 58

5.2 DNS域 58

5.3 DNS区 59

5.4 主机名 60

5.5 名字服务器 60

5.6 主次DNS服务器 60

5.7 DNS记录 60

5.8 名字解析 61

5.9 更新DNS 61

5.10 为什么使用DNS 61

5.11 活动目录和DNS 61

5.11.1 DNS如何定义活动目录域结构 62

5.11.2 使用DNS定位域控制器 62

5.11.3 活动目录:集成DNS服务器 65

5.11.4 在活动目录中找到DNS区信息及其存储的位置 65

第2部分 活动目录内容 68

第6章 活动目录操作属性 68

6.1 RootDSE 68

6.1.1 configurationNamingContext 69

6.1.2 current Time 69

6.1.3 default NamingContext 69

6.1.4 dnsHostName 69

6.1.5 dsServiceName 69

6.1.6 highestCommittedUSN 70

6.1.7 ldapServiceName 70

6.1.8 namingContexts 70

6.1.9 rootDomainNamingContext 70

6.1.10 schemaNamingContext 70

6.1.11 serverName 70

6.1.12 subschemaSubentry 71

6.1.13 supportedControl 71

6.1.14 supportedLDAPPolicies 71

6.1.15 supportedLDAPVersion 71

6.1.16 supportedSASLMechanisms 72

6.2 活动目录对象的操作属性 72

6.2.1 allowedAttribules 72

6.2.2 allowedAttributesEffective 72

6.2.3 allowedChildClasses 72

6.2.4 allowedChildClassesEffective 72

6.2.5 canonicalName 73

6.2.6 createTimeStamp 73

6.2.7 dITContentRules 73

6.2.8 extendedAttributeInfo 73

6.2.9 extendedClassInfo 73

6.2.10 modifyTimeStamp 73

6.2.11 ObjectClasses 73

6.2.12 sDRightsEffective 74

第7章 活动目录域结构 75

7.1 LDAP目录层次 75

7.1.1 容器对象 75

7.1.2 叶子对象 75

7.1.3 层次式对象名 75

7.1.4 命名上下文 76

7.1.5 划分和复制 77

7.2 Windows NT域 77

7.2.1 活动目录域 77

7.2.2 域信任 77

7.3 DNS域 77

7.4 活动目录树和森林 78

7.5 根域 78

7.6 域控制器和副本 79

7.7 站点 79

第8章 配置命名上下文 80

8.1 配置命名上下文概览 80

8.1.1 配置容器对象 80

8.1.2 DisplaySpecifiers 81

8.1.3 ExtendedRights 84

8.1.4 LostAndFoundConfig 84

8.1.5 划分 84

8.1.6 模式 85

8.1.7 服务 85

8.1.8 站点 87

8.1.9 WellKnownSecurityPrincipals 89

第9章 活动目录模式 90

9.1 活动目录模式介绍 90

9.2 类定义 90

9.2.1 三种类定义 91

9.2.2 类标识 92

9.2.3 定义类的属性 92

9.2.4 定义包含关系 92

9.2.5 活动目录模式中的继承 93

9.2.6 定义类安全 94

9.2.7 classSchema属性 94

9.3 属性定义 95

9.3.1 标识属性 96

9.3.2 定义属性类型 96

9.3.3 索引和全局类别 97

9.3.4 Linked属性 97

9.3.5 其他管理属性 98

9.4 属性语法 99

9.4.1 未定义语法 99

9.4.2 DN语法 99

9.4.3 OID语法 100

9.4.4 caseExactString语法 100

9.4.5 CaseIgnoreString语法 100

9.4.6 IA5String语法 100

9.4.7 NumericString语法 100

9.4.8 ORName语法 100

9.4.9 Boolean语法 100

9.4.10 Integer语法 100

9.4.11 OctetString语法 101

9.4.12 GeneralizedTime语法 101

9.4.13 DirectoryString语法 101

9.4.14 PresentationAddress语法 101

9.4.15 DNWithString语法 101

9.4.16 NTSecurityDescriptor语法 101

9.4.17 INTEGER8语法 102

9.4.18 DNWithBinary语法 102

9.4.19 Sid语法 102

9.5 Aggregate对象 103

9.5.1 attributeTypes 103

9.5.2 ObjectClasses 104

9.5.3 dITContentRules 104

9.5.4 extentedAttributeInfo 105

9.5.5 extendedClassInfo 105

9.6 检查模式 106

9.6.1 使用LDAP查找模式 106

9.6.2 使用ADSI查找模式 106

9.7 操作模式 107

9.7.1 找到模式FSMO管理器 107

9.7.2 确保模式可被修改 110

9.7.3 为模式扩展获得OID 111

9.7.4 为什么模式变化不可见 111

9.8 模式操作程序的示例 112

9.8.1 获得模式FSMO 112

9.8.2 在模式中加入一个新类 113

9.8.3 为模式加入一新属性 114

9.8.4 禁用模式中的一个类 118

9.8.5 禁用模式中的属性 120

第10章 活动目录域命名上下文 121

10.1 活动目录域 121

10.2 Builtins容器 121

10.2.1 局部组 121

10.2.2 全局组 122

10.2.3 全体组 122

10.2.4 组对象中的属性 122

10.3 Computers容器 123

10.3.1 从用户类继承来的Computer属性 123

10.3.2 计算机对象的其他属性 124

10.4 ForeignSecurityPrincipals容器 125

10.4.1 foreignSecurityPrincipal对象 125

10.5 Infrastructure对象 125

10.6 LostAndFound容器 126

10.7 System容器 126

10.7.1 trustedDomain对象 126

10.7.2 RIDManager $ 对象 128

10.7.3 CN=System,CN=Policies 容器及组策略对象 128

10.8 Users容器 129

10.8.1 用户标识属性 131

10.8.2 安全属性 132

10.8.3 登录属性 133

10.8.4 系统服务属性 135

10.9 域控制器容器 136

10.9.1 dNSHostName 136

10.9.2 operatingSystem 136

10.9.3 operatingSystemHotfix 136

10.9.4 operatingSystemServicePack 136

10.9.5 operatingSystemVersion 136

10.9.6 rIDSetReferences 136

10.9.7 serverReferenceBL 137

10.9.8 servicePrincipalName 137

第3部分 活动目录服务接口 139

第11章 ADSI基础 139

11.1 活动目录服务接口介绍 139

11.1.1 多客户端平台 139

11.1.2 多目录提供者 139

11.2 ADSI或LDAP 139

11.2.1 平台 140

11.2.2 语言 141

11.2.3 目录之间的移植性 142

11.2.4 其他考虑 142

11.3 组件对象模型(COM)基础 143

11.3.1 为什么不详细介绍COM 143

11.3.2 什么是COM 143

11.3.3 为什么选择COM 143

11.3.4 关键思想是什么 144

11.3.5 COM组成部分 144

11.4 ADSI初步 149

11.4.1 设置机器 149

11.4.2 ADSI程序——“Hello World” 151

11.5 特殊的COM数据类 155

11.5.1 关于_bstr_t和_variant_t异常的注解 155

11.5.2 _bstr_t类 156

11.5.3 _variant_t类 156

11.5.4 _com_error类 156

11.6 绑定至活动目录的对象 156

11.6.1 ADsPaths 156

11.6.2 ADSI的无服务器绑定 158

11.6.3 使用GUID绑定目录对象 158

11.6.4 绑定目录对象的机制 158

11.6.5 ADSI的快速绑定 159

11.6.6 使用辅助函数ADsGetObject()进行绑定 159

11.6.7 使用辅助函数ADsOpenObject()进行绑定 163

11.6.8 使用IADsOpenDSObect::OpenDSObject()函数绑定 165

第12章 活动目录的基本ADSI接口 169

12.1 ADSI的目录对象接口 169

12.1.1 IADs接口 169

12.1.2 IADsPropertyList接口 189

12.1.3 IADsPropertyEntry接口 193

12.1.4 IADsPropertyValue接口 194

12.1.5 IADsPropertyValue2接口 195

12.1.6 IDirectoryObject接口 196

12.1.7 IADsContainer接口 202

12.1.8 IADsDeleteOps接口 215

第13章 使用ADSI搜索活动目录 218

13.1 使用ADSI搜索介绍 218

13.1.1 指定搜索基点 218

13.1.2 搜索过滤器 219

13.1.3 指定所返回的属性 219

13.1.4 作为行的对象 219

13.1.5 作为列的属性 219

13.2 IDirectorySearch接口 219

13.2.1 使用IDirectorySearch接口开始和终止搜索 220

13.2.2 使用IDirectorySearch::CloseSearchHandle()终止搜索 222

13.2.3 使用IDirectorySearch::GetNextRow()获取对象 223

13.2.4 使用IDirectorySearch::GetNextCol()函数和IDirectorySearch::GetColumn()函数获取属性 224

13.2.5 使用IDirectorySearch的简单搜索 226

13.3 使用搜索选项扩展搜索 229

13.3.1 使用IDirectorySearch进行同步和异步搜索 232

13.3.2 使用IDirectorySearch进行分页搜索 233

13.3.3 使用IDirectorySearch接口排序搜索结果 234

13.3.4 使用IDirectorySearch接口允许和禁止结果高速缓存 237

13.3.5 使用IDirectorySearch接口设置搜索限制 238

第14章 使用ADSI访问用户、组和组织 242

14.1 使用ADSI访问用户对象 242

14.1.1 IADsUser接口 243

14.1.2 使用IADsUser接口获得用户名 246

14.1.3 使用IADsUser接口加锁用户账号 248

14.1.4 使用IADsUser接口设置用户口令 249

14.2 使用ADSI访问组 251

14.2.1 IADsGroup接口 251

14.2.2 IADsMembers接口 255

14.3 使用ADSI访问组织、地区以及组织单元 261

14.3.1 IADsO、IADsOU和IADsLocality接口 262

14.3.2 获取组织的描述 264

14.3.3 枚举O或OU的内容 265

第15章 使用ADSI访问活动目录模式 266

15.1 两种模式 266

15.1.1 应该使用哪种模式 266

15.2 使用通用对象接口访问模式 267

15.2.1 使用通用对象接口枚举模式中的类 267

15.2.2 绑定模式管理器 269

15.2.3 使用通用对象接口添加新属性 272

15.2.4 使用通用对象接口添加新类 275

15.3 使用抽象模式接口访问模式 277

15.3.1 绑定至抽象模式 277

15.3.2 使用抽象模式容器接口 278

15.3.3 使用IADsClass访问模式类对象 280

15.3.4 使用IADsProperty接口访问模式属性对象 284

15.3.5 使用IADsSchema接口访问模式语法对象 286

第16章 其他活动目录API函数 289

16.1 连接活动目录服务 289

16.2 转换目录服务名 291

16.3 发现站点、服务器以及域 295

16.3.1 寻找域控制器 295

16.3.2 列举活动目录中的站点 299

16.3.3 列举站点中的服务器 300

第4部分 轻型目录访问协议 304

第17章 LDAP基础 304

17.1 LDAP历史 304

17.1.1 LDAP版本1 304

17.1.2 LDAP版本2 305

17.1.3 LDAP版本3 305

17.2 安装LDAP组件 305

17.3 LDAP编程组件 306

17.3.1 WINLDAP.H 306

17.3.2 WLDAP32.LIB 306

17.3.3 WLDAP32.DLL 306

17.4 为LDAP编程设置Visual Studio 307

17.4.1 方法一:修改项目设置 307

17.4.2 方法二:修改Visual C++目录选项 308

17.4.3 方法三:修改系统环境变量 309

17.5 LDAP编程模型 310

17.5.1 初始化客户端库 311

17.5.2 连接活动目录服务器 311

17.5.3 发送LDAP请求 311

17.5.4 处理LDAP结果 311

17.5.5 关闭连接 311

17.6 关于活动目录的LDAP编程的常用注解 311

17.6.1 创建LDAP连接 312

17.6.2 错误处理 312

17.6.3 ANSI和Unicode字符集 313

17.6.4 对象标识符(OIDs) 313

17.6.5 同步和异步(多线程)函数 313

17.7 一个简单的LDAP程序 315

第18章 使用LDAP连接活动目录 317

18.1 关于使用LDAP库的注释 318

18.2 定位域控制器 319

18.3 初始化LDAP客户端库 323

18.3.1 ldap_init()函数 323

18.3.2 关于端口号的注解 325

18.3.3 ldap_sslinit()函数 325

18.4 连接至域控制器 326

18.4.1 ldap_connect()函数 326

18.4.2 ldap_open()函数 328

18.4.3 使用cldap_open()函数进行UDP连接 328

18.5 断开与活动目录域控制器之间的连接 331

第19章 使用LDAP进行认证 332

19.1 认证证书 332

19.2 多绑定 332

19.3 匿名连接 332

19.4 LDAP绑定函数 333

19.5 使用ldap_simple_bind_s()进行简单LDAP绑定 333

19.6 使用SASL认证活动目录 335

19.7 使用ldap_bind_s()函数认证活动目录 336

第20章 使用LDAP搜索活动目录 340

20.1 指定LDAP搜索 340

20.1.1 搜索基点 340

20.1.2 搜索深度 341

20.1.3 搜索条件 341

20.1.4 请求属性 341

20.2 使用ldap_search_s()函数进行简单搜索 342

20.3 处理搜索结果 343

20.3.1 迭代所返回的项 343

20.3.2 获得所返回项的可区别名字 344

20.3.3 获取所返回属性 345

20.3.4 处理属性值 346

20.3.5 处理二进制属性值 350

20.4 使用超时值进行搜索 353

第21章 使用LDAP进行高级搜索 357

21.1 复杂的搜索条件 357

21.1.1 LDAP如何处理搜索过滤器 357

21.1.2 完整的LDAP搜索过滤器语法 357

21.1.3 搜索位字段属性 368

21.1.4 检查LDAP搜索过滤器的有效性 370

21.2 异步LDAP搜索 370

21.2.1 启动一个异步搜索 371

21.2.2 处理异步搜索结果 372

21.2.3 放弃异步搜索 379

21.3 属性请求 382

21.3.1 请求所有的属性 382

21.3.2 请求特定的属性 382

21.3.3 请求可操作属性 383

21.3.4 请求所有属性和可操作属性 384

21.3.5 不请求属性 384

21.4 有时间限制的LDAP搜索 384

21.4.1 为一次搜索设置服务器时间限制 385

21.4.2 为一次搜索设置客户时间限制 388

21.4.3 改变服务器搜索时间限制 390

21.5 限制项的LDAP搜索 391

21.5.1 为什么项限制不能正常工作 391

21.5.2 设置搜索项限制 391

第22章 扩展LDAP搜索 393

22.1 使用LDAP控制扩展LDAP搜索 393

22.1.1 客户方和服务器方控制 393

22.1.2 LDAPControl结构 393

22.1.3 扩展后的LDAP函数 394

22.1.4 活动目录搜索控制简介 394

22.1.5 获取目录改变通知信息 395

22.1.6 搜索已删除对象 398

22.1.7 为目录对象检索安全描述符 401

22.1.8 检索扩展名字信息 405

22.2 获取搜索结果——一次一页 407

22.2.1 执行分页搜索的两个方法 408

22.2.2 建立分页搜索 408

22.2.3 检索多页项 410

22.2.4 放弃一个分页搜索 413

22.3 以已排序的方式获取搜索结果 414

22.3.1 排序的限制 414

22.3.2 排序搜索函数 415

22.4 将分页搜索和排序搜索结合在一起使用 427

第23章 处理LDAP引用 434

23.1 两种引用 434

23.2 引用是何是产生的 435

23.3 处理引用的两种策略 436

23.3.1 配置LDAP客户使之追踪引用 436

23.3.2 从搜索结果追踪引用 438

23.4 引用的高速缓存连接 448

第24章 使用LDAP修改活动目录对象 455

24.1 修改对象之前你应当注意的一些事项 455

24.1.1 多个修改操作 456

24.1.2 多值属性 456

24.1.3 修改操作 456

24.1.4 不存在空属性 456

24.1.5 模式规则 456

24.1.6 访问权限 457

24.1.7 使用LDAP修改对象所需的数据结构 457

24.1.8 选择一个合适的API函数 458

24.2 使用LDAP修改对象时所需的API数据结构 459

24.2.1 berval结构 459

24.2.2 ldapmod结构 459

24.3 修改一个已存在的属性 460

24.4 向一个已存在的对象添加一个新属性 463

24.5 使用berval结构添加一个新属性 465

24.6 删除一个已存在的属性 468

24.7 向一个已存在的属性添加附加的值 471

24.8 从一个多值属性中删除一个值 471

24.9 使用惰性提交控制执行大量的目录更新 473

24.10 异步修改目录 478

24.10.1 从一个异步修改操作中检索结果 481

24.10.2 将异步搜索和异步修改结合在一起使用 483

24.11 移动和重命名活动目录对象 487

24.11.1 使用LDAP重命名活动目录对象 488

24.11.2 异步地重命名活动目录对象 490

第25章 使用LDAP添加活动目录对象 494

25.1 添加对象之前你应当注意的一些事项 494

25.1.1 添加对象在很大程度上类似于修改对象 494

25.1.2 一次添加多个属性 495

25.1.3 多值属性 495

25.1.4 父容器的存在性 495

25.1.5 模式规则 495

25.2 使用LDAP添加对象所需的API数据结构 497

25.2.1 berval结构 497

25.2.2 ldapmod结构 498

25.3 选择合适的API函数 499

25.4 通过使用ldap_add_s()同步地添加对象 500

25.5 通过使用ldap_add()异步地添加对象 502

25.5.1 检索异步添加操作的结果 504

25.6 使用惰性提交控制执行大量的对象添加操作 510

25.7 使用ldap_add_ext_s()向目录中添加对象 514

第26章 使用LDAP删除活动目录对象 518

26.1 删除对象之前你应当注意的一些事项 518

26.1.1 访问权限 518

26.1.2 在删除容器之前必须确保容器是空的 518

26.2 选择适当的API函数 518

26.3 使用ldap_delete_s()同步地删除对象 519

26.4 使用ldap_delete_ext_s()删除一个容器和它的下级对象 521

26.5 使用ldap_delete()异步地删除对象 523

26.5.1 检索异步删除操作的结果 525

26.6 使用LDAP控制和ldap_delete_ext()异步地删除对象 529

第27章 使用LDAP比较活动目录对象 533

27.1 比较对象之前你应当注意的一些事项 533

27.1.1 比较和搜索之间的区别 533

27.1.2 网络流量 534

27.1.3 不存在的属性语义 534

27.1.4 匹配规则 534

27.1.5 访问权限 534

27.1.6 比较二进制值 534

27.1.7 测试多值属性 534

27.2 使用ldap_compare_s()测试属性断言 534

27.3 使用ldap_compare_ext_s()测试属性断言 537

27.4 使用ldap_compare()测试属性断言 540

27.4.1 检索异步比较操作的结果 542

27.5 使用ldap_compare_ext()测试属性断言 547

第28章 使用选项和控制扩展LDAP 552

28.1 LDAP选项 553

28.1.1 读入选项 553

28.1.2 设置选项 553

28.2 关闭选项和打开选项 554

28.3 “标准的”LDAP选项 554

28.3.1 LDAP_OPT_DESC 554

28.3.2 LDAP_OPT_DEREF 555

28.3.3 LDAP_OPT_SIZELIMIT 555

28.3.4 LDAP_OPT_TIMELIMIT 556

28.3.5 LDAP_OPT_REFERRALS 556

28.3.6 LDAP_OPT_RESTART 557

28.3.7 LDAP_OPT_PROTOCOL_VERSION和LDAP_OPT_VERSION 557

28.3.8 LDAP_OPT_HOST_NAME 558

28.3.9 LDAP_OPT_ERROR_NUMBER 558

28.3.10 LDAP_OPT_ERROR_STRING 559

28.4 微软特有的LDAP选项 559

28.4.1 LDAP_OPT_SSL 559

28.4.2 LDAP_OPT_REFERRAL_HOP_LIMIT 560

28.4.3 LDAP_OPT_PING_KEEP_ALIVE,LDAP_OPT_PING_WAIT_TIME和LDAP_OPT_PING_LIMIT 560

28.4.4 LDAP_OPT_DNSDOMAIN_NAME 560

28.4.5 LDAP_OPT_GETDSNAME_FLAGS 561

28.4.6 LDAP_OPT_PROMPT_CREDENTIALS 561

28.4.7 LDAP_OPT_AUTO_RECONNECT 561

28.4.8 LDAP_OPT_SSPI_FLAGS 562

28.5 LDAP控制 562

28.5.1 分页搜索 563

28.5.2 排序搜索 563

28.5.3 获取安全描述符 563

28.5.4 改变通知(一致化搜索) 564

28.5.5 显示已删除对象 564

28.5.6 惰性提交 564

28.5.7 DirSync控制 564

28.5.8 返回扩展后的DN 565

28.5.9 树删除 565

28.5.10 交叉域移动 565

28.5.11 验证服务器名字 566

28.5.12 在局部作用域下搜索 566

28.5.13 许可的修改 566

第29章 LDAP错误处理函数 567

29.1 处理LDAP错误 567

29.1.1 LDAP错误码 567

29.1.2 获取LDAP错误的字符串描述 571

29.1.3 将LDAP错误转换为Win32错误 571

第5部分 附录 574

附录A 活动目录ADSI接口 574

附录B Microsoft Windows 2000 LDAP函数 587

返回顶部