active directory基本知识

来源:互联网 发布:java 连接 pi数据库 编辑:程序博客网 时间:2024/05/17 04:31
Active Directory 是 Windows 2000 操作系统的新内容,它在实施组织的网络、进而实现组织的商业目标中占有重要地位。 可以从三个方面来介绍Activfe Directory 1)存储。 Active Directory,即 Windows? 2000 Server 目录服务,可分层存储网络对象的信息,并向管理员、用户和应用程序提供这些信息。 2)结构。使用 Active Directory,可以根据结构组织网络及其对象,这些结构包括域、目录树、目录林、信任关系、部门 (OU) 和站点。 3)相互通信。Active Directory 以标准目录访问协议为基础,因此能够与其他目录服务进行交互操作,并可接受遵守这些协议的第三方应用程序的访问。 Activfe directory的优点在于 1)与 DNS 集成。 Active Directory 使用域名系统 (DNS)。DNS 是一种 Internet 标准服务,它将用户能够读取的计算机名称(例如 mycomputer.microsoft.com)翻译成计算机能够读取的数字 Internet 协议 (IP) 地址(由英文句号分隔的四组数字)。这样,在 TCP/IP 网络计算机上运行的进程即可相互识别并进行连接。 2)灵活的查询。 用户和管理员如果要通过对象属性快速查找网络中的对象,可使用“开始”菜单中的“查找”命令、桌面上的“网上邻居”图标或者是 Active Directory 用户和计算机管理单元。例如,您可以按照一个用户帐户的姓名、电子邮件名、办公地点或其他属性查找该用户。而且,使用全局编录优化了查找信息的操作。 3)可扩展性。 Active Directory 是可扩展的;也就是说,管理员既可以在架构中添加新的对象类别,也可在原有的对象类别中添加新属性。架构包含每个对象类别的定义,以及能够存储于目录中的 每个对象类别的属性。例如,您可能会为 User 对象添加 Purchase Authority 属性,然后将每个用户的购买权限额保存为用户帐户的一部分。 4)基于策略的管理。 组策略是在初始化时应用于计算机或用户的配置设置。所有组策略设置都包含在应用于 Active Directory 站点、域或部门的组策略对象 (GPO) 中。GPO 设置决定了对目录对象和域资源的访问权限、用户可使用的域资源(如应用程序),以及这些域资源针对其用途的配置方式。 5)可伸缩性。 Active Directory 包括一个或多个域,每个域均有一个或多个域控制器,由此,您能够对目录进行自由扩展,从而满足所有网络的需求。多个域可合并成一个域目录树,多个域目录树 可合并成一个目录林。在只有一个域的最简单的网络结构中,该域既是一个目录树,又是一个目录林。 6)信息复制。 Active Directory 使用多主机复制,使您可以更新任何域控制器中的目录。在一个域中部署多个域控制器还提供了容错能力和负载平衡功能。因为这些域控制器包含同样的目录数据, 所以,如果域内的一个域控制器速度变慢、停止或出现故障,同一域内的其他域控制器即可提供必要的目录访问功能。 7)信息安全。在 Windows 2000 操作系统中,用户身份验证和访问控制的管理都与 Active Directory 完全结合在一起,这是该系统的一项关键性安全功能。Active Directory 将身份验证集中进行。不仅可以定义对目录中每个对象的访问控制,还可定义对每个对象的每个属性的访问控制。此外,Active Directory 还为安全策略提供了存储区和应用范围。8)互操作性。由于 Active Directory 以标准目录访问协议(例如轻型目录访问协议 (LDAP))为基础,因此它能够与其他采用这些协议的目录服务进行交互操作。有些应用程序编程接口 (API)--例如 Active Directory 服务接口 (ADSI)--允许开发者访问这些协议。

现在开始学习active directory,第一次写技术性文章,套用一句歌词的说法,偶的心怦怦怦直跳。
    1.为什么叫做活动目录
    刚刚接触活动目录这个名词的时候,一下就被搞蒙了,不知道活动目录和一般的windows目录(文件夹)有什么区别,它怎么就是活动的了,通过一段时间的学习,搞清楚了这些。
    文件夹仅代表一个文件存在磁盘上的位置和层次关系,一个文件生成之后相对来说这个文件的所在目录也就相对固定了,也就是说它的属性也就相对固定 了,是静态的。这个目录所能代表的仅是这个目录下所有文件的存放位置和所有文件总的大小,并不能得出其它有关信息,这样就影响到了整体使用目录的效率,也 就是影响了系统的整体效率,使系统的整个管理变得复杂。
    活动目录之所以称做“活动的”是因为它可以做到“由此及彼”的联想、映射,如找到了一个用户名,就可联想到它的账号、出生信息、E-mail、电 话等所有基本信息,虽然组成这些信息的文件可能不在一块。同时不同应用程序之间还可以对这些信息进行共享,减少了系统开发资源的浪费,提高了系统资源的利 用效率。
    活动目录包括两个方面:目录和与目录相关的服务。目录是存储各种对象的一个物理上的容器,从静态的角度来理解这活动目录与我们以前所结识的“目 录”和“文件夹”没有本质区别,仅仅是一个对象,是一实体;而目录服务是使目录中所有信息和资源发挥作用的服务,活动目录是一个分布式的目录服务,信息可 以分散在多台不同的计算机上,保证用户能够快速访问。
     活动目录主要用在分布式的环境中。在分布式环境中,要求有各种信息可以被各种应用很方便地访问读取。活动目录正式为分布式环境中的信息提供一种 访问途径。它提供了一个公共的区域来保存分布式环境中的各种信息,并且对这些信息进行定位。从开发人员角度看活动目录,可以理解活动目录是一种存放了应用 程序所需要的特定资源信息的“数据库”。活动目录还对这些资源信息的读取和查询进行了优化。
    2.活动目录基本术语
        2.1对象
        活动目录的信息实体,可以使一个用户,一台打印机或者是一个网络共享。对象包含描述它们的必选属性和可选属性。
        2.2容器和非容器
        活动目录中的资源信息被组织成一个层次结构。这个层次结构中的每一个实体都被简称为对象。换句话说,活动目录中创建对象时,是把它们创建在一个层次结构中的。该结构由两种类型的对象组成:Container(容器)和非Container(非容器)。容器可容纳非容器或下一级的容器。而非容器则不再包含其他对象,因此也常被成为叶子对象。在安装完活动目录后,操作系统已经默认自动创建了很多的Container,如Users, Builtin等。 
         2.3ADsPath、DN、RDN
        在活动目录中层次结构的路径被称为ADsPath,可用来唯一标志一个对象(另外唯一标志对象的方法是使用GUID)。ADsPath常用的表示为:LDAP://DC=microsoft,DC=com。例如,有域被命名为mydomain.local,则它的ADsPath表示为:LDAP://DC=mydomain,DC=local。 其中DC是Domain Component(域组件)的缩写,它只用于表示域的根。DN是Distinguished Name(唯一标识)的缩写,RDN是Relative Distinguished Name(相对唯一标识)的缩写。DN用来在一个完整的目录信息树中唯一表示一个对象的名称,而RDN是指在该对象的父容器中唯一表示它的名称。下面看个 示例:在mydomain.local域中用户容器中超级管理员帐号的ADsPath为:LDAP://CN=Administrator,CN=Users,DC=mydomain,DC=local,其DN为(注意没有了LDAP:// 这个前缀):CN=Administrator,CN=Users,DC=mydomain,DC=local,其RDN为(即在Users容器中的名称):CN=Administrator。其中CN是Common Name(公用名称)的缩写.
     3.安装活动目录
    在Server 2003点开始-》运行输入dcpromo就可以进入安装向导,卸载向导也是同样的命令。
    4.使用C#.net访问活动目录
    1.添加DirectoryServices引用
    2.Example
    

using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;

namespace ADDemo
{
    class Program
    {
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            DirectoryEntry de = new DirectoryEntry("LDAP://CN=Users,DC=tiger,DC=com");
            Console.WriteLine("Name: " + de.Name);//获取Common Name(公用名称)
            Console.WriteLine("Path: " + de.Path);//获取AdsPath 用来唯一标识一个域中的对象
            Console.WriteLine("Guid: " + de.Guid);//获取其Guid可以唯一标识
            Console.WriteLine("UserName: " + de.Username);
            Console.WriteLine("Type: " + de.SchemaClassName);
            Console.WriteLine("NativeGuid: " + de.NativeGuid);
            foreach (DirectoryEntry obj in de.Children)
            {
                //Console.Write("Name:{0}/t",obj.Name);
                Console.WriteLine("Path: " + obj.Path);
            }
            Console.ReadKey();
        }
    }
}
原创粉丝点击