AD域实现统一用户管理

article/2025/9/21 7:01:09
    1. AD域服务

    什么是目录(directory)呢?

日常生活中使用的电话薄内记录着亲朋好友的姓名、电话与地址等数据,它就是 telephone directory(电话目录);计算机中的文件系统(file system)内记录着文件的文件名、大小与日期等数据,它就是 file directory(文件目录)。

如果这些目录内的数据能够由系统加以整理,用户就能够容易且迅速地查找到所需的数据,而 directory service(目录服务)提供的服务,就是要达到此目的。在现实生活中,查号台也是一种目录;在 Internet 上,百度和谷歌提供的搜索功能也是一种目录服务。

Active Directory 域内的 directory database(目录数据库)被用来存储用户账户、计算机账户、打印机和共享文件夹等对象,而提供目录服务的组件就是 Active Directory (活动目录)域服务(Active Directory Domain Service,AD DS),它负责目录数据库的存储、添加、删除、修改与查询等操作。一般适用于一个局域网内。

在 AD 域服务(AD DS)内,AD 就是一个命名空间(Namespace)。利用 AD,我们可以通过对象名称来找到与这个对象有关的所有信息。

在 TCP/IP 网络环境内利用 Domain Name System(DNS)来解析主机名与 IP 地址的对应关系,也就是利用 DNS 来解析来得到主机的 IP 地址。除此之外,AD 域服务也与 DNS 紧密结合在一起,它的域命名空间也是采用 DNS 架构,因此域名采用 DNS 格式来命名,例如可以将 AD 域的域名命名为 moonxy.com。

 

    1. LDAP简介

LDAP(Lightweight Directory Access Protocol),轻量目录访问协议,是一种用来查询与更新 Active Directory 的目录服务通信协议。AD 域服务利用 LDAP 命名路径(LDAP naming path)来表示对象在 AD 内的位置,以便用它来访问 AD 内的对象。

         LDAP数据的组织方式(如下图所示), 在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织 (Organization)(o=Acme)或组织单元(Organizational units) (ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有设备等信息。此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例如:inetOrgPerson对象类需要支持sn(surname)和cn(common name)属性,但也可以包含可选的如邮件,电话号码等属性。

 

1.2 LDAP常见简称

简介

全称

用途

o

Organization

组织/公司

ou

Organization Unit

组织单元

c

Country

国家

dc

Domain Component

域名

sn

Suer Name

真实名称

cn

Common Name

常用名称

dn

Distiguished Name

唯一标识名

uid

User ID

用户标识

 

1.3 AD域与LDAP的区别

Windows AD(Active Directory)域应该是LDAP的一个应用实例,而不应该是LDAP本身。Windows AD域的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,AD域提供了相关的用户接口,我们可以把AD域当做微软定制的LDAP服务器。Active Directory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用。

2创建AD域服务,导入证书

创建AD域服务这里不在多说,网上有很多详细教程。详细介绍一下AD域服务证书问题。

情况1:不涉及密码,状态操作。不需要证书

可以使用默认389端口 使用springboot 集成LDAP配置 就可以完成基本操作

情况 2:功能要求密码,状态操作

   这种情况下需要使用AD域的636端口,SSL协议访问,并导入服务器的AD域服务证书  。 网上有很多教程说本地使用ie浏览器访问服务器IP,下载证书,亲测没什么用还增加难度。可以使用最简单的方式 服务器导出证书后直接复制到本地。

证书导入: 默认密码 changeit

开始 >> 运行 >> 输入cmd 进入dos命令行 >>cd 到jdk1.5\jre\lib\security这个目录下,敲以下命令(使用此命令可以省略指定路径):

keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer

红底 : 为证书导入起的别名,可以随便起

绿底 : 为从服务器导出的证书路径(命令错误就给路径加上双引号 “”)

       如果在连接的代码中报错误

       javax.naming.CommunicationException: 192.168.0.10:636 [Root exception is javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names matching IP address 192.168.0.10 found]

       换JDK 1.8-161 或 尝试属于下列导入证书方式(该步骤需写路径):

1. 然后“开始-运行->cmd”进入控制台,

2. 用CD命令切换到jdk的bin目录下,

3. 输入命令:“keytool -import -keystore 证书名.keystore  -file cer文件的路径”,

4. 从而导入一个新的证书,进入jdk的bin目录能够看到你新命名的那个扩展名为keystore的文件,

5. 然后将更改密码的时候设置的证书路径更改为刚刚生成的这个证书的文件路径。(代码中体现)

3连接AD域服务

使用Softera LDAP Browser连接服务 方便查看AD域用户信息

  1. 创建连接

 

 

  1. 输入连接名(随便输入)

 

  1. 输入IP地址 点击FetchBaseDNs选择域名(默认389端口)

 

  1. 输入用户名+@域名

这里Principal 一定记得输入 用户名+@完整域名

 

  1. 连接完成

       从图一中可以查看AD域的组织和用户数据,图一红框中就是组织单元。但是AD域中也有组的概念,切记第一点,用户需要创建到组织单元中,然后可以根据用户角色分配到组里。

       第二点,图二是用户nie 的ObjectClass属性值。图三是组织单元的ObjectClass属性值

包括其他的 组,联系人,计算机。。。都有对应的ObjectClass值。在创建,查找,删除,修改用户,组织单元等 都需要指定objectClass(在下面代码中详细介绍)

 

4. 集成LDAP配置

     在pom.xml中添加Maven依赖

<!-- LDAP Module -->

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-data-ldap</artifactId>

</dependency>

<!-- JPA Module -->

<dependency>

  <groupId>org.springframework.boot</groupId>

  <artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

项目依赖包spring-boot-starter-data-ldap是Spring Boot封装的对LDAP自动化配置的实现,它是基于spring-data-ldap来对LDAP服务端进行具体操作的

5 编写代码

先贴一下基本属性 第30行 使用636端口

5.1 打开链接

(197)该ip需 636端口

(198)在上述导入证书步骤中,如使用第一种可省略此步代码,使用第二种方式必须指定 .keystore文件的路径,

(200)在创建用户时需要设置密码和用户状态,所以需要指定SSL协议

此步骤如果用户验证失败,直接抛出异常 err code 49 可以先尝试把用户名加 @域名,如果还是err code 49 那就是你账号密码有问题

 

          5.2关闭连接

直接调用dc.close()方法即可

 

5.3添加账户

这里创建账户调用使用

public DirContext createSubcontext(String name, Attributes attrs)

       参数name 为创建用户的完整distinguishedName  CN= , OU= ,DC= ,DC= 形式

       Attrs 则为用户属性(见下图)

 

这里有个异常

Remain name 。。。的错,此错误为 distinguishedName  属性值错误

方法通过及添加完成

5.4设置添加属性

上图红框 :设置添加的属性。 此处4个属性值 对应用户。 也可更改为组,计算机等 可以在步骤三 最后图二中查看属性值。

 

上图绿框 :(170)设置用户常用名CN 基本属性之一

                (171)用户状态:66048[普通帐户,无密码到期]

                                             546 用户禁用    (还有很多其他状态自行百度)

                (174)编码格式不可改其他的,“\” 密码 “\”  \不可省略

                 (170 - 175) 这里的attrs 可以添加更多的数据,例如姓,电话,公司,职位等等,只需要put方法第一个参数设置成对应的属性,可在3连接AD域服务 软件上查看

这里有一点 cn 要和 distinguishedName 中的CN= 一致

                                                                            

 

 

 

 

 

 

 

 

 

 

 

 

 

在学习操作AD域中 , 难点就在于导入服务器证书,以ssl协议连接,并创建用户设置密码,设置状态。至于其他的操作,直接调用 LdapContext 的方法及可实现难度不大。

6 参考文章

Windows Server 2008 R2 活动目录服务安装  链接

安装AD域服务证书 win server 2008  链接   证书导入参考 本文档步骤2

安装AD域服务证书 win server 2012  链接   证书导入参考 本文档步骤2

Spring LDAP Reference  官方文档    链接 

博客  链接

操作AD域  err code 总计

 

 


http://chatgpt.dhexx.cn/article/hxw1nL7P.shtml

相关文章

AD域建设管理(一)| 安装windows server2019、AD域、AD域证书服务

AD域建设管理&#xff08;一&#xff09;| 安装windows server2019、AD域、AD域证书服务 1.环境介绍及前言2.安装配置win server 2019虚拟机3.安装AD域服务、AD证书服务3.1.安装AD域服务3.2.配置AD域服务(将此服务器提升为域控制器)3.3.安装AD域证书服务3.4.配置AD域证书服务 4…

AD域组策略安全管理

信息安全-终端安全&#xff08;AD域组策略安全管理&#xff09; 终端安全体系五要素&#xff1a; 身份认证&#xff1a;AD认证、身份标识、角色定义、外部纷争系统等。 准入控制&#xff1a;软件防火墙、802.1X交换机、网关准入控制、ARP、DHCP等。 安全认证&#xff1a;防病…

通过Windows10管理AD域控

有域控环境&#xff0c;要维护管理域控&#xff0c;一般都是直接在AD域控上操作&#xff0c;或者是远程到AD域控的服务器&#xff0c;有没有办法直接在windows10的电脑上操作管理域控呢&#xff1f;答案是肯定的&#xff0c;微软给我们提供一个插件&#xff1a;win10: WindowsT…

AD域管理-Active Directory批量用户管理

在Microsoft Active Directory中管理用户帐户是对每个IT管理员的公开挑战。使用本地Active Directory工具或类似PowerShell等其它选项对用户属性进行手动配置是非常耗时&#xff0c;令人厌烦&#xff0c;而且容易出错&#xff0c;特别是在大型复杂的windows网络中。此外&#x…

AD域控管理之授权普通用户或组管理计算机加入域和退出域的权限

通过委派任务来实现&#xff0c;具体如下&#xff1a; 1. 在域控上打开Active Directory 用户和计算机&#xff0c;右击域名(注意“将计算机加入域”只能在域上委派&#xff0c;不能在OU上)&#xff0c;选择【委派控制】; 2. 下一步&#xff0c;点击添加&#xff0c;选择被授权…

AD域控基本功能介绍

AD active Direcotry 域控制器是指在“域”模式下&#xff0c;至少有一台服务器负责每一台联入网络的电脑和用户的验证工作&#xff0c;相当于一个单位的门卫一样&#xff0c;称为“域控制器&#xff08;Domain Controller&#xff0c;简写为DC&#xff09;”。 将多台网络中…

VMware-AD域控管理

目录 新建AD用户[ 以张三[zhangsan]、李四[lisi]为例 ] 2.用户信息-属性-管理-编辑&#xff1a; 3.将张三设置为AD域控管理员&#xff0c; 在wqd.com域下新建几个部门&#xff08;IT、HR、PRD&#xff09; 对从主机&#xff08;win7&#xff09;进行AD接管 修改win7计算机名称&…

光猫,路由器,机顶盒

本文仅记录一下我家的网络配置&#xff0c;不具有普适性。 1&#xff0c;路由方式 光猫是光纤入网进来的第一个机器&#xff0c;光猫有2个网口&#xff0c;网口1专门用来上网&#xff0c;网口2专门用来看电视。 路由器的WAN口接光猫网口1&#xff0c;是路由器的网络入口&…

更换光猫的原理与方法

当你给装维打电话说你需要更换光猫时&#xff0c;对于装维来说&#xff0c;他并不需要知道怎么更换&#xff0c;他只需要生成一张工单&#xff0c;由后台进行业务操作后&#xff0c;在去用户家把新光猫给装好即可&#xff0c;此时装维到底起到了什么作用呢&#xff1f;我想可能…

光猫、路由器、交换机、wifi通俗释义

如今&#xff0c;网络已经进入了千家万户&#xff0c;上网已成为了我们生活中必不可少的事情。通常&#xff0c;在家里最常见的网络设备有&#xff1a;光猫&#xff08;光调制解调器&#xff09;、路由器、交换机、wifi&#xff0c;但很多小白用户并不能轻易区分它们。当遇上网…

“光猫”调制解调器 和 路由器的区别 傻傻分不清

一、 “猫”指调制解调器&#xff0c;所谓调制&#xff0c;就是把数字信号转换成电话线上传输的模拟信号;解调&#xff0c;即把模拟信号转换成数字信号。合称调制解调器。调制解调器的英文是“Modem”&#xff0c;读音与“猫”相似&#xff0c;因此被称作“猫”。简单来说&…

家庭组网 登录光猫超级账户(吉比特GM228-S)改桥接并使用路由器拨号上网 关闭QoS

管理面板默认地址&#xff1a;192.168.1.1 光猫默认超级账户&#xff1a;CMCCAdmin 超级账户默认密码&#xff1a;aDm8H%MdA &#xff08;若尝试使用以上超级账户登录光猫管理后台失败&#xff0c;可尝试使用以下方法或其他方法。&#xff09; 目录 一、直接询问宽带装维师傅查…

通过openwrt路由器访问桥接模式下的光猫

光猫桥接模式下,通过路由器访问光猫.简单设置 不用登录ssh命令行,只在网页上操作就可以. openwrt 只需要三步: 假设光猫的IP地址为 192.168.1.1 ,openwrt路由器 局域网LAN 地址 不要和光猫同网段. 1 网络->接口->添加新接口 , 接口绑定在 vlan0.2 2 设置新接口为 静态地…

中国移动光猫外接一个路由器的方法

我们家安装了一个移动的网线&#xff0c;然后二楼没有网络&#xff0c;我想二楼拉一个网线&#xff0c;然后再二楼外接一个路由器&#xff0c;这样网络可以通用&#xff0c;我从移动的光猫插入一根网线&#xff0c;然后拉到二楼以后&#xff0c;插到路由器里面&#xff0c;发现…

光猫和路由器的区别

上个图看看他俩长啥样 光猫&#xff1a;又称调制调解器&#xff0c;它主要为了信号转换&#xff0c;如把模拟信号转换成数字信号。 路由器&#xff1a;主要功能是进行网络信号的传输&#xff0c;发送WiFi信号让多台设备可以联网。 在家庭上网过程中&#xff1a;信号由光纤传…

家庭组网方案研究(2):路由器和光猫上的连接方式

一、无线路由模式 Router&#xff0c;即无线路由模式&#xff0c;这也是我们最常用的一种工作方式&#xff0c;光纤进家后第一个设备就是光猫&#xff0c;将光猫设置为router模式的话&#xff0c;光猫自己帮你拨号&#xff0c;光猫也就变成了路由器&#xff0c;直接自动获取IP…

路由器和光猫的区别是什么?

什么是光猫&#xff1f;什么是路由器&#xff1f; 光猫的作用是什么&#xff1f; 光猫的工作原理是什么&#xff1f; 什么是交换机&#xff1f; 什么是光猫&#xff1f;把光缆信号转换为网络信号的一种机器 光猫和路由器的区别&#xff1f; 讲人话就是&#xff0c;上图带天线…

光猫和路由器上网详解

1. 光猫的作用 光猫又称光调制调解器&#xff0c;它主要为了信号转换&#xff0c;把光信号转换成我们平时上网所需要的数字信号。 2. 路由器的作用 路由器又可以称之为网关设备。路由器就是在OSI/RM中完成的网络层中继以及第三层中继任务&#xff0c;对不同的网络之间的数据…

(45.6)【API接口漏洞】API接口之RESTful测试工具postman、Restlet Client下载、使用

目录 一、postman 1.1、 下载&#xff1a; 1.2、基本使用介绍&#xff1a; 二、Restlet Client 2.1、介绍&#xff1a; &#xff08;芝麻开门&#xff09; 一、postman 1.1、 下载&#xff1a; 下载地址&#xff08;官网&#xff09;&#xff1a; Postman API Platform | S…

RESTLET框架学习

通过代码学REST——RESTLET框架学习 /** * * 摘自 * http://www.restlet.org/documentation/1.1/firstResource * 一个服务器端的组件&#xff0c;用来启动一个服务&#xff0c;监听8182端口&#xff0c;并将/firstResource的URL请求&#xff0c;交给 * FirstResourceApp…