基于AD域实现单点登录设计文档

版本说明:

服务器类型:

WinServer2016

Eclipse版本:

Version: Luna Service Release 2 (4.4.2)

Build id: 20150219-0600

Jdk版本:

1.6

客户端:

Win10

 

  • 在WinServer2016服务器中搭建AD域:
  1. 左键单击桌面左下角开始菜单,在弹出窗口中选择服务器管理器并双击;如下图1:

coremail AD域单点登陆 ad域实现单点登录_单点登录

 

                       图1

2.进入服务器管理器仪表板页面,通过服务器管理器中添加角色,进行域服务角色安装。(注: winserver2012后已经不能使用命令行dcpromo进入域安装向导)如图2:

coremail AD域单点登陆 ad域实现单点登录_单点登录_02

图 2

3.选择基于角色或基于功能的安装点击下一步:如图3

coremail AD域单点登陆 ad域实现单点登录_单点登录_03

图3

4.选择本地服务器“WIN-MNCQVTCS7MF…”。下一步:图4

coremail AD域单点登陆 ad域实现单点登录_exchange_04

图4

5.选择“Active Directory” 域服务,点击下一步。图5、图5.1:

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_05

图5

coremail AD域单点登陆 ad域实现单点登录_exchange_06

图5.1

 

6.默认选项下一步:图6

coremail AD域单点登陆 ad域实现单点登录_AD域_07

            图 6

7.默认选项“下一步”图7:

 

        

coremail AD域单点登陆 ad域实现单点登录_exchange_08

图 7

8.选择“如果需要,自动重新启动目标服务器”。按“安装”。(备注:指定备用源路径,指向windows server 2016 安装盘)图8:

coremail AD域单点登陆 ad域实现单点登录_AD域_09

              图 8

9.安装完成。按“关闭” 图 9:

 

       

coremail AD域单点登陆 ad域实现单点登录_Winserver_10

        图 9

10.选择服务器任务详细信息,选择“部署后配置”按:将此服务器提升为域控制器。 图10:

coremail AD域单点登陆 ad域实现单点登录_单点登录_11

                                       图10

11.选择“添加新林”,填写根域名:RBJF.COM.  如图11:

coremail AD域单点登陆 ad域实现单点登录_AD域_12

                                图 11

 

 

 

 

12.选择林和域功能级别是 Windows server 2016,提供域控制器功能,选择“域名系统(DNS)服务器”。默认是选“全局目录”。并设置活动目录还原密码。如图12

coremail AD域单点登陆 ad域实现单点登录_Winserver_13

                               图12

13.默认选择下一步:如图13:

coremail AD域单点登陆 ad域实现单点登录_AD域_14

                                图13

14.默认显示NetBIOS是 MCITP 图14

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_15

                          图14

15.默认选择下一步: 如图15:

coremail AD域单点登陆 ad域实现单点登录_AD域_16

                   图15

16.显示安装信息如下: 图16

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_17

                               图 16

17.查看导出安装AD脚本

coremail AD域单点登陆 ad域实现单点登录_exchange_18

                 图17

 

18.选择“安装” 图18

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_19

                              图18

19.安装过程会自动重启:图19

coremail AD域单点登陆 ad域实现单点登录_单点登录_20

                          图19

 

20.安装好后 使用域系统管理员登录 图20

coremail AD域单点登陆 ad域实现单点登录_exchange_21

                                  图20

21.登录后进入开始菜单。 图21

coremail AD域单点登陆 ad域实现单点登录_AD域_22

                                  图21

 

 

 

22.(在仪表板工具菜单下)通过Active Directory域和信任关系,查看操作主机信息 如图22

coremail AD域单点登陆 ad域实现单点登录_Winserver_23

                             图22

23.Active Directory站点和服务查看站点信息。现默认站点只有一台域控服务器。 图23、

coremail AD域单点登陆 ad域实现单点登录_AD域_24

                         图23

24.Active Directory 用户和计算机中新建OU (组),取名“OA” 如图24:

coremail AD域单点登陆 ad域实现单点登录_exchange_25

                             图24.1

coremail AD域单点登陆 ad域实现单点登录_AD域_26

                           图24.2

25.Active Directory 用户和计算机在IT ou中新建用户“JACK”。如图25

coremail AD域单点登陆 ad域实现单点登录_exchange_27

图25.1

coremail AD域单点登陆 ad域实现单点登录_单点登录_28

                             图25.2

coremail AD域单点登陆 ad域实现单点登录_Winserver_29

                            图25.3

coremail AD域单点登陆 ad域实现单点登录_exchange_30

                         图25.4

26.赋予用户权限 图26

coremail AD域单点登陆 ad域实现单点登录_AD域_31

                  图26.1

 

coremail AD域单点登陆 ad域实现单点登录_AD域_32

                                      图26.2

coremail AD域单点登陆 ad域实现单点登录_单点登录_33

                      图26.3

coremail AD域单点登陆 ad域实现单点登录_Winserver_34

                                   图26.4

coremail AD域单点登陆 ad域实现单点登录_Winserver_35

选择相应的该用户应赋予权限即可;

 

至此AD域服务器端搭建 完成!!!

 

 

  • 客户端连接到AD域:

Win10下有两种方式连接到AD域:

方法1:

 

coremail AD域单点登陆 ad域实现单点登录_单点登录_36

 

 

 

 

 

coremail AD域单点登陆 ad域实现单点登录_exchange_37

coremail AD域单点登陆 ad域实现单点登录_单点登录_38

coremail AD域单点登陆 ad域实现单点登录_Winserver_39

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_40

coremail AD域单点登陆 ad域实现单点登录_AD域_41

方法2:(仅限win10):

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_42

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_43

coremail AD域单点登陆 ad域实现单点登录_Winserver_44

coremail AD域单点登陆 ad域实现单点登录_coremail AD域单点登陆_45

coremail AD域单点登陆 ad域实现单点登录_Winserver_46

coremail AD域单点登陆 ad域实现单点登录_exchange_47

 

 

 

 

 

 

 

如果重启后以域用户身份登录后在属性中查看到了计算机域信息并且显示登录用户为域用户则说明登录域操作成功了:如下图:

 

coremail AD域单点登陆 ad域实现单点登录_AD域_48

 

 

 

 

三.JAVA WEB 通过AD域实现单点登录;

条件:AD域用户名与JAVAWEB OA系统的用户名保持一致

  1. 获取通过AD域访问OA系统的客户端域信息

工具:jar包 jcifs-1.3.15.jar


 

方法:1.将jcifs-1.3.15.jar 包放在javaWEB目录的WEBINF目录下的lib目录中;

  1. 向web.xml文件中添加过滤器 内容为:

<filter>
<filter-name>NtlmHttpFilter</filter-name>
<filter-class>jcifs.http.NtlmHttpFilter</filter-class>
<init-param>
<param-name>jcifs.http.domainController</param-name>
<param-value>192.168.0.90</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>NtlmHttpFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

192.168.0.90是你AD服务器,然后在你的登陆的代码中使用
request.getRemoteUser(),就可以得到当前域用户的用户名了

添加好后将新添jar包引入并重启工程,再在AD域登录指向的Action类中获取客户端的域信息 参考代码:

//取到客户端域名及客户名

    String domainuser = req.getRemoteUser();

    System.out.println(domainuser);

    String user = domainuser.substring(domainuser.indexOf("\\")+1);

    String ADdomain = domainuser.substring(0, domainuser.indexOf("\\"));

    System.out.println(user+"##"+ADdomain);

至此单点登录核心功能已经实现完成。剩下的模拟账号密码登录过程不做陈述

2可能遇到的问题解决办法:

coremail AD域单点登陆 ad域实现单点登录_单点登录_49

 

原因分析:因JCIFS的HttpFilter并不支持NTLM2协议,而当客户端是WIN7系统时,默认采用的是NTLM2协议。如果此时域控服务器也支持NTLM2,则会默认采用NTLM2协议验证。就会出现该异常了。

解决办法:将客户端的默认协议改为NTLM协议

步骤:单击”开始“-“运行”,输入secpol.msc,打开“本地安全策略”,在本地安全策略窗口中依次打开“本地策略”-->“安全选项”,然后再右侧的列表中找到“网络安全:LAN
管理器身份验证级别”,把这个选项的值改为“发送 LM 和 NTLM 
报错解决办法

 

 

 

                                                  2016年11月15日第一版

                                                  ----------------------作者:岳利

包含winserver2016环境搭建  exchange2013邮箱服务器集成 AD域用户权限分配 单点登录实现