windows server2016搭建AD域服务器

文章目录

一、背景

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

项目背景:公司项目当前采用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文件

java 复制代码
keytool -import -trustcacerts -alias ldapssl -file adserver.cer -keystore adserver_keystore.jks

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

四、导出某用户的keytab文件

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


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

java 复制代码
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文件添加内容

java 复制代码
10.110.25.48 testldap.com

六、主机确认是否能ping通

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

java 复制代码
# 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)模拟用户登录认证

相关推荐
勤奋的凯尔森同学40 分钟前
webmin配置终端显示样式,模仿UbuntuDesktop终端
linux·运维·服务器·ubuntu·webmin
丁卯4042 小时前
Go语言中使用viper绑定结构体和yaml文件信息时,标签的使用
服务器·后端·golang
chengooooooo2 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
人间打气筒(Ada)3 小时前
MySQL主从架构
服务器·数据库·mysql
落笔画忧愁e4 小时前
FastGPT快速将消息发送至飞书
服务器·数据库·飞书
小冷爱学习!4 小时前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
落幕5 小时前
C语言-进程
linux·运维·服务器
菜鸟单飞8 小时前
介绍一款非常实用的PDF阅读软件!
windows·pdf·电脑
xmweisi8 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证
DC_BLOG9 小时前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式