windows server2016搭建AD域服务器

news/2025/1/14 21:55:29/文章来源:https://www.cnblogs.com/bigcat26/p/18671806

@

目录
  • 一、背景
  • 二、搭建AD域服务器步骤
  • 三、生成可供java程序使用的keystore文件
  • 四、导出某用户的keytab文件
  • 五、主机配置hosts文件
  • 六、主机确认是否能ping通
  • 本人其他相关文章链接

一、背景

亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。

项目背景:公司项目当前采用http协议+shiro+mysql的登录认证方式,而现在想支持ldap协议认证登录然后能够访问自己公司的项目网站。

举例说明:假设我们公司有自己的门户网站,现在我们收购了一家公司,他们数据库采用ldap存储用户数据,那么为了他们账户能登陆我们公司项目所以需要集成,而不是再把他们的账户重新在mysql再创建一遍,万一人家有1W个账户呢,不累死了且也不现实啊。

需要安装AD+kerberos,且ldap和kerberos安装在同一台服务器上,当前版本如下:

  • windows server 2016
  • 服务器IP:10.110.25.48

我公司电脑室windows10的,我是VietualBox安装的windows server 2016,类似安装个虚拟机,然后去安装AD。

二、搭建AD域服务器步骤

1.在需要安装AD域控制器的电脑上打开服务器管理器,点击添加角色和功能

2.打开添加角色和功能向导,点击下一步

3.安装类型选择基于角色或基于功能的安装,点击下一步

4.服务器选择从服务器池中选择服务器,再选中池中的本地服务器,点击下一步

5.服务器角色选择Active Directory域服务,根据提示进行安装

6.运行AD DS(Active Directory域服务的简称)部署向导,打开本地服务器的服务器管理器,点击通知-将此服务器提升为域控制器

7.打开AD DS的部署向导,由于我们这里是部署新的AD控制器,所以部署配置选择添加新林,把根域名设置成testldap.com(自定义),点击下一步

8.设置域密码,点击下一步

9.根据提示,完成配置
10.添加Active Directory 证书服务角色

11.选择角色服务,根据提示进行安装

12.配置域证书,点击通知-配置目标服务器上的Active Directory 证书服务

13.勾选证书颁发机构,点击下一步

14.指定CA的加密,默认即可。点击下一步

15.指定CA名称,点击下一步

16.指定有效期,这里设置为5年,点击下一步

17.指定CA数据库的位置,默认即可.点击下一步

18.确认证书的配置,点击配置.点击下一步

19.配置完成后,重启下服务器,在证书颁发机构中可以看到给域控颁发的证书

三、生成可供java程序使用的keystore文件

1.导出证书,供客户端连接使用,举例命名为adserver.cer

2.执行以下命令,使用上一步骤导出的证书文件生成供java 程序使用的keystore文件

keytool -import -trustcacerts -alias ldapssl -file adserver.cer -keystore adserver_keystore.jks

提示输入密码时,填入指定密码:ldap@1993

四、导出某用户的keytab文件

1.在AD域服务器的服务器管理器-工具-Active Directory 用户和计算机 管理面板中新建一个测试用户testuser5


2.在AD域服务器中以管理员权限打开命令提示符程序,执行以下命令生成keytab文件

ktpass /out C:\testuser5.keytab /princ testuser5@TESTLDAP.COM /mapuser TESTLDAP\testuser5 /crypto all /ptype KRB5_NT_PRINCIPAL /pass *

参数释义:

  • /out 后参数为keytab文件的输出路径和文件名
  • /princ kerberos主体名,测试过程可约定为 账号@域名
  • /mapuser 域账号映射
  • /crypto 加密类型,可设置为all,也可按需配置

执行命令后根据提示输入账号的密码,完成keytab文件创建。

五、主机配置hosts文件

打开C:\Windows\System32\drivers\etc\hosts文件添加内容

10.110.25.48 testldap.com

六、主机确认是否能ping通

执行命令,如果下方两种都能ping通,则证明自己项目能访问AD域了。

# ping testldap.com
或者
# ping 10.110.25.48

本人其他相关文章链接

1.Centos7.9安装openldap
2.Centos7.9安装kerberos
3.Openldap集成Kerberos
4.Centos7.9安装phpldapadmin
5.java连接ldap实现用户查询功能
6.java连接kerberos用户认证
7.javax.security.auth.login.LoginException: Unable to obtain password from user
8.javax.security.auth.login.LoginException: null (68)
9.javax.security.auth.login.LoginException: Message stream modified (41)
10.javax.security.auth.login.LoginException: Checksum failed
11.javax.security.auth.login.LoginException: No CallbackHandler available to garner authentication info
12.javax.security.auth.login.LoginException: Cannot locate KDC
13.javax.security.auth.login.LoginException: Receive timed out
14.java: 无法访问org.springframework.context.ConfigurableApplicationContext
15.LDAP: error code 34 - invalid DN
16.LDAP: error code 32 - No Such Object
17.java: 无法访问org.springframework.ldap.core.LdapTemplate
18.windows server2016搭建AD域服务器
19.java连接AD(Microsoft Active Directory)模拟用户登录认证

重要信息

  • 官网:https://ais.cn/u/vEbMBz



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/869273.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

07 异常

什么是异常 异常就像是生活中遇到的意外情况。在程序运行过程中,可能会出现一些意想不到的问题,比如要打开的文件不存在、网络连接突然中断、除数为零等,这些就是异常。当异常发生时,如果不处理,程序可能会崩溃或出现错误结果,所以需要我们去处理这些异常,让程序能更稳健…

MySQL基础 数据库表的增删改

Mysql 数加科技整理 一、原理定义概念 定义数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。 数据库是长期储存在计算机内、有组织的、可共享的数据集合。分类: ​ 非结构化数据: ​ 数据相对来讲没有固定的特点,这种数据非常不便于…

加入我们|申请成为亚马逊云科技 Community Builder,共建云端社区!

亚马逊云科技 Community Builder 项目为开发者社区中的技术爱好者和新兴思想领袖提供技术资源、学习和交流机会,帮助开发者探索、分享技术相关知识,并与亚马逊云科技产品团队、技术专家和更多开发者社区成员建立紧密联系。亚马逊云科技开发者社区为开发者们提供全球的开发技术…

[ARC070E] NarrowRectangles

前言 模拟赛 \(\rm{T4}\) , 不会比较正常, 仅仅只是记录做法 然后就是还有每日一练 思路 首先是朴素的 \(\rm{dp}\) 令 \(f_{i, j}\) 表示考虑到第 \(i\) 行, 其中这一行的左端点位置为 \(j\) 的最优花费 容易写出转移 \[f_{i, j} \gets \min_{k \in [j - len_{i - 1}, j + len…

PDF Automation文档页面自动化工具

PDF Automation是我用VB6开发的一个PDF文档页面自动化工具。电脑必须安装了Adobe Acrobat才能使用该工具。软件的主要功能包括:文档的拆分 文档的合并 页面的删除 页面的移动 页面的插入等。 软件界面正中央的区域是文档列表,也就是多个PDF文档,最右侧是页面列表,显示当前所…

not_the_same_3dsctf_2016 1

打开ida能看到栈溢出,返回地址填到get_secret函数里面,可以看到get_secret函数是直接读取了flag的,现在就需要把它输出即可。 输出我们可以利用代码里面的printf,因为printf从缓冲区打印出东西需要满足条件,比如有换行符或缓冲区已满或程序正常退出。 这里我们用exit让程序…

JS-35 数组方法_reverse()

reverse方法用于颠倒排列数组元素,返回改变后的数组。注意,该方法将改变原数组 var a =[a,b,c]; a.reverse()//["c","b","a"];

FastGPT及大模型API(Docker)私有化部署指南

本文提供了FastGPT及其相关大模型API的Docker私有化部署指南,旨在简化部署流程并降低设备配置要求。文章重点介绍了优化后的部署配置、推荐使用的部署容器以及部署步骤,确保用户能够在不影响FastGPT功能的前提下,以高效的资源利用实现快速部署。1. **部署优化**:本文首先指…

LCT

1 概述 首先我们需要知道一类问题,在这类问题中我们需要维护一个森林,支持加边和删边操作,然后要求维护树上的一些信息。这类问题称为动态树问题。 而 LCT,即 Link-Cut Tree,就是用于解决动态树问题的一种数据结构。 学习 LCT 之前需要对 Splay 这种平衡树有一定了解,当然…

git整体使用流程

一、场景说明本地有文件 想在github创建一个远程仓库 在本地修改,同时同步到远端二、流程设置用户名和邮箱目的:标识每次提交者的身份 设置全局用户名:git config --global user.name "Your Name" 设置全局邮箱:git config --global user.email "your.email…

【Linux性能】Linux 下利用 Valgrind 进行内存调试

一、概述 Valgrind 是一个开源的内存调试和性能分析工具,用于帮助开发者找出程序中的内存错误,如内存泄漏、使用未初始化的内存、非法内存访问等问题。它在 Linux 平台上广泛使用,并且支持下多种处理器架构。 二、Valgrind 的使用 2.1 基本格式 valgrind --tool=memcheck -–…

C#/.NET/.NET Core技术前沿周刊 | 第 21 期(2025年1.6-1.12)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等…