精华内容
下载资源
问答
  • AD域单点登录

    2017-02-18 14:31:31
  • 再使用Active Directory Federation Services AD FS来实现单点登录 1、安装好AD域、安装好ADFS ; 2、配置ADFS,可参考:实战:ADFS3.0单点登录系列-总览https://www.cnblogs.com/luoyedemeng/articles/..

    一、背景

    微软Active Directory域 (简称:AD域),通过C#实现AD域免登录;可采用ActiveX 获取当前登录的域用户名、或使用windows 身份验证来获取当前域用户名。根据获取到的域用户名 再与系统中用户进行关联进行登录;

    以上方式可以实现免登录(只需要登录一次,后续自动登录),但都是依赖于IE浏览器。由于IE浏览器已不在维护升级,那如何实现AD域 单点登录呢。

    可以采用Active Directory Federation Services AD FS来实现单点登录,AD FS其实就是解决SSO单点登录的问题。

    二、AD FS描述

    Active Directory 联合身份验证服务 (AD FS) 可跨安全和企业边界安全地共享数字标识和权利权限,从而实现联合身份和访问管理。 AD FS 扩展了使用单个安全或企业边界内提供给面向 Internet 的应用程序的单一登录功能的功能,使客户、合作伙伴和供应商可以在访问组织中基于 web 的应用程序时简化用户体验。

    三、AD FS要求

    应用程序域名必须使用https协议,即需要SSL证书。如果公司的主域名为 w.aaa.com; 多个应用程序使用二级域名如

    a.aaa.com; b.aaa.com; c.aaa.com.

    建议申请SSL证书时,要申请通配符类的证书 *.aaa.com 这样二级域名类的应用程序就可以不需要跨域 能自动登录;

    具体的AD FS要求请查阅:请查阅文章底部

    四、部署

    1、首先需要安装好 AD域,再安装ADFS; 

    本文只针对需要注意的地方进行强调。具体安装文档请查阅底部链接

    点击下一步下一步操作即可,具体操作方法也可以百度如何安装AD域服务;此处省

    2、安装AD FS应用

    配置AD FS时 服务器需要加入到AD域中

    安装之前先将申请好的SSL证书 安装在服务器上;应为在安装过程中需要使用SSL证书;

    安装完成之后需要配置AD FS

    1.配置向导,选择”在联合服务器场中创建第一个联合服务器“

    2.配置账户用于连接域,注意,该账户需具有域管理员权限

    3.指定服务属性,证书选择上一篇中创建并导入到“个人”中的通配符证书,名称修改一下,这里我修改为sts.domain.com的形式,联合服务器名称这里可以随意填写,后面会介绍如何对其进行修改。

    继续点击一下步就好了就完成了;

    测试配置是否正常

    1. 打开浏览器窗口,在地址栏中键入联合身份验证服务名称,然后,在该名称的后面附加 federationmetadata/2007-06/federationmetadata.xml,以浏览到联合身份验证服务元数据终结点。例如:
        https://fs.contoso.com/federationmetadata/2007-06/federationmetadata.xml

        你应该会看到联合服务器元数据。 如果你尚未将 SSL 证书的根 CA 证书导入到客户端计算机上由本地计算机信任的根证书存储中,则可能会看到 SSL 错误或警告。

      2.也可以浏览到 AD FS 登录页(联合身份验证服务名称后接 adfs/ls/idpinitiatedsignon.htm)。例如:

        https://fs.contoso.com/adfs/ls/idpinitiatedsignon.htm

    如果看到右侧显示错误信息,如:

    验证错误,则需要配置:请按照:

    https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon

    进行配置,主要是设置:

    设置之后验证 如果显示未登录则正常。继续往下走;

    1、接下来要配置 创建信赖方信任

    按照:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/create-a-relying-party-trust 进行配置;

    2、配置声明规则

    请按照:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/create-a-rule-to-send-ldap-attributes-as-claims 进行配置;

    到这里就配置好了。接下来开发代码; 可查阅后面的文字信息,。

        这样便会显示 AD FS 登录页,你可以在其中使用域管理员凭据登录。

    原来使用AD域 通过activex 来实现获取域用户名,通过域用户名与系统的关联关系自动登录。(只能在IE上使用)

    后来使用ad域windows身份验证来实现获取域用户名。(IE不自动更新,退出市场)

    再使用Active Directory Federation Services AD FS来实现单点登录

    1、安装好AD域、安装好ADFS ; 

    2、配置ADFS,可参考:实战:ADFS3.0单点登录系列-总览 

    3、配置ADFS 过程中需要使用SSL证书,局域网需要自己生成SSL证书。注意申请证书请使用通配符 如*.hr.com 。因为配置adfs需要一个域名、应用需要域名;局域网生成SSL证书如下:【如果是正式环境申请 *.域名.com的SSL证书即可】

    下载 mkcert-v1.4.2-windows-amd64.exe

    打开CMD ,转到下载目录

    再输入 mkcert-v1.4.2-windows-amd64.exe -install

    mkcert-v1.4.2-windows-amd64.exe 127.0.0.1 localhost //后面还可以继续空格添加其他域名或IP地址,默认是pem格式

    mkcert-v1.4.2-windows-amd64.exe -pkcs12 192.168.10.123 //生成p12格式的正式iis可以用,默认密码为:“changeit”

    mkcert-v1.4.2-windows-amd64.exe -client 192.168.10.123 //客户端证书,默认是pem格式

    mkcert-v1.4.2-windows-amd64.exe -pkcs12 -client 192.168.10.123 //生成p12格式客户端证书,win用户可以直接导入,默认密码为:“changeit”

    如生成通符域名证书请使用mkcert-v1.4.2-windows-amd64.exe -pkcs12 *.hr.com 

    然后找到生成的证书,安装好。

    4、配置好AD FS后,需要验证两步

    1、打开浏览器窗口,在地址栏中键入联合身份验证服务名称,然后,在该名称的后面附加 federationmetadata/2007-06/federationmetadata.xml,以浏览到联合身份验证服务元数据终结点。例如:

        https://fs.hr.com/federationmetadata/2007-06/federationmetadata.xml

        你应该会看到联合服务器元数据。 如果你尚未将 SSL 证书的根 CA 证书导入到客户端计算机上由本地计算机信任的根证书存储中,则可能会看到 SSL 错误或警告。

    2、浏览到 AD FS 登录页(联合身份验证服务名称后接 adfs/ls/idpinitiatedsignon.htm)。例如:

        https://fs.hr.com/adfs/ls/idpinitiatedsignon.htm

        这样便会显示 AD FS 登录页,你可以在其中使用域管理员凭据登录。

    发现没有登录界面,请参考如下配置:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon

    再重新登录浏览到 AD FS 登录页(联合身份验证服务名称后接 adfs/ls/idpinitiatedsignon.htm) 查看网页是否正常,正常的话往下走

    接下来要配置信任方,可参考文章最下面的链接配置

    6、打开VS2019 ,选择MVC,注意此处:

    新建MVC项目后,只需要更改一个地方 web.config 

    最后在应用服务器中打开应用地址如:https://localhost:44315/, 此时没登录的情况下会跳转到 AD FS的登录界面。

    如果关闭浏览器后 又转到了ADFS登录界面,请设置AD FS的配置 请按照这个配置

    https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/ad-fs-single-sign-on-settings  主要是下面的截图配置;

    配置之后,就可以看到:

    这样关闭浏览器之后再打开也没有问题的。

    具体的AD FS要求请查阅:

    https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/overview/ad-fs-requirements

    安装部署地址文档:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/deployment/deploying-a-federation-server-farm

    具体可参考官网:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/troubleshooting/ad-fs-tshoot-initiatedsignon

    https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/ad-fs-single-sign-on-settings

    配置信任方配置:https://docs.microsoft.com/zh-cn/windows-server/identity/ad-fs/operations/create-a-relying-party-trust

    如果出现 “IIS DELETE,PUT请求,返回 405 - 不允许用于访问此页的 HTTP 谓词” 错误信息,请确保web.config 中的地址 与你打开的地址一莫一样。包含端口也要一样。

    展开全文
  • 基于AD域实现单点登录设计文档 版本说明: 服务器类型: WinServer2016 Eclipse版本: Version: Luna Service Release 2 (4.4.2) Build id: 20150219-0600 Jdk...

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

    版本说明:

    服务器类型:

    WinServer2016

    Eclipse版本:

    Version: Luna Service Release 2 (4.4.2)

    Build id: 20150219-0600

    Jdk版本:

    1.6

    客户端:

    Win10

     

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

     

                           图1

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

    图 2

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

    图3

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

    图4

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

    图5

    图5.1

     

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

                图 6

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

     

             图 7

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

                  图 8

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

     

                   图 9

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

                                           图10

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

                                    图 11

     

     

     

     

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

                                   图12

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

                                    图13

    14.默认显示NetBIOS是 MCITP 图14

                              图14

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

                       图15

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

                                   图 16

    17.查看导出安装AD脚本

                     图17

     

    18.选择“安装” 图18

                                  图18

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

                              图19

     

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

                                      图20

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

                                      图21

     

     

     

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

                                 图22

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

                             图23

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

                                 图24.1

                               图24.2

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

    图25.1

                                 图25.2

                                图25.3

                             图25.4

    26.赋予用户权限 图26

                      图26.1

     

                                          图26.2

                          图26.3

                                       图26.4

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

     

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

     

     

    • 客户端连接到AD域:

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

    方法1:

     

     

     

     

     

     

    方法2:(仅限win10):

     

     

     

     

     

     

     

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

     

     

     

     

     

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

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

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

    工具:jar包 jcifs-1.3.15.jar

    https://download.csdn.net/download/luo201227/7739823

     

    方法: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可能遇到的问题解决办法:

     

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

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

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

     

     

     

                                                      2016年11月15日第一版

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

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

    详细信息 请去我的网盘下载 地址:

    https://pan.baidu.com/s/1sm0IbUX

     

    展开全文
  • 我们企业内网系统是AD域的方式实现单点登录。 对于J2EE单个应用来说NTLM做身份验证的方式。 加入jcifs包 只要在web.xml里配置 NtlmHttpFilter 再从以request.getRemoteUser() 获取 域账户名称 实现的单点登录。 ...
  • CAS SPNGEO windows AD域实现单点登录免身份认证 王保齐 2019年11月28日 目录 CAS+windows AD域实现单点登录免身份认证 1 环境准备: 2 Windows server 2012 R2 2 安装jdk 2 安装域控制及DNS等相关服务,如下: 2...

    CAS SPNGEO windows AD域实现单点登录免身份认证

    2019年11月28日

    目录

    CAS+windows AD域实现单点登录免身份认证 1

    1. 环境准备: 2
    2. Windows server 2012 R2 2
    1. 安装jdk 2
    2. 安装域控制及DNS等相关服务,如下: 2
    3. 新建组织单位及用户 20
    4. 注册SPN及生成keytab文件 24
    1. WIN7相关配置 25
    1. 更改主机名并加入域 25
    2. IE相关配置 26
    3. 火狐相关配置 30
    1. CENTOS7.7部署内容及相关操作 31
    1. 更改主机名并关闭防火墙 31
    2. 安装jdk1.8+ 31
    3. 更改网络设置 31
    4. 加域 32
    5. 安装kerberos 33
    6. TOMCAT8+配置 37
    1. 常见问题 39
    2. 连接拒绝 39
    3. 读取keytab文件失败 39
    4. 总结 40

    1.环境准备:
    域控服务器:windows server 2012 R2
    客户端系统:windows 7
    cas服务器:centos7.7
    Cas:4.0.0
    Jdk:1.8+

    2.Windows server 2012 R2
    1)安装jdk
    2)安装域控制及DNS等相关服务,如下:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    分配静态IP地址,DNS不需要备用,只需要填写本机IP即可,不能用127地址。

    准备工作完成,开始进入正题

    前面直接下一步就好,

    此处前四项均勾选,并勾选DNS服务

    这里也不需要选,直接下一步。

    耐心等待5-10分钟,看你自己服务器配置

    然后点击“小旗子”图标,

    为了与.com分开,测试环境使用.local后缀

    会报错,但是不用理会因为没安装DNS服务器,直接下一步

    还是直接下一步

    存放在默认位置就行

    有黄色提示,直接安装就行,安装完会自动重启,不用理会,中途还有一些其他页面没有截图,重启完成后登陆节目如下:

    登陆后打开“服务器管理器”

    3)新建组织单位及用户

    新建组织单位名称
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    4)注册SPN及生成keytab文件
    setspn -S HTTP/cen.cas.com@cas.com liujia

    执行完此命令成功之后,再查看账户,登录用户名则为 HTTP/liujia,执行此步需要cas服务器(centos)加入域之后方可执行。此域名在DNS服务中查找。

    ktpass /out cas.keytab /princ HTTP/cen.cas.com@CAS.COM /pass * /mapuser liujia@CAS.COM /ptype KRB5_NT_PRINCIPAL /crypto ALL

    在执行此命令的目录下(c:\Program Files\Java\jdk1.8.0_231\bin\)找到cas.keytab文件,此文件cas服务需要使用。

    3.WIN7相关配置
    1)更改主机名并加入域
    例如:主机名为win7
    2)IE相关配置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    3)火狐相关配置
    在这里插入图片描述
    在这里插入图片描述

    4.CENTOS7.7部署内容及相关操作
    1)更改主机名并关闭防火墙
    [root@cen /]# vi /etc/hosname
    例如域名为cas.com
    例如:更改为centos.cas.com
    2)安装jdk1.8+
    3)更改网络设置
    访问ifcfg-eth0文件,可能不同机器,文件名不同。然后重启网络。
    [root@cen /]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
    [root@cen /]# service network restart
    内容如下:
    TYPE=“Ethernet”
    PROXY_METHOD=“none”
    BROWSER_ONLY=“no”
    BOOTPROTO=“static” #dhcp为动态分配,如果有需要,需要改为动态
    DEFROUTE=“yes”
    IPV4_FAILURE_FATAL=“no”
    IPV6INIT=“yes”
    IPV6_AUTOCONF=“yes”
    IPV6_DEFROUTE=“yes”
    IPV6_FAILURE_FATAL=“no”
    IPV6_ADDR_GEN_MODE=“stable-privacy”
    IPADDR=10.11.96.36 #手动添加内容,本机IP
    NETMASK=255.255.255.0 #手动添加内容,本机子网掩码
    GETEWAY=10.11.96.1 #手动添加内容,本机默认网关
    DNS1=10.11.96.20 #手动添加内容,本机DNS,需要指向域控服务器IP
    NAME=“eth0”
    UUID=“0df77d4d-ec23-45f4-a52f-b11516cd9ab7”
    DEVICE=“eth0”
    ONBOOT=“yes” #是否开启网络,no为不开启

    4)加域
    (一)安装加域必须软件包

    [root@cen /]# yum install krb5-workstation realmd sssd samba-common adcli oddjob oddjob-mkhomedir samba samba-common-tools -y

    (二)发现域控服务器
    [root@cen /]# realm discover cas.com

    (三)加入域控服务器

    [root@cen /]# realm join cas.com

    a.查看是否加入成功,加入成功之后,在域控服务器端也可以看到
    [root@cen src]# realm list

    5)安装kerberos
    一、安装必须软件

    yum install krb5-server krb5-libs krb5-auth-dialog
    二、配置kdc.conf文件
    [root@cen krb5kdc]# vi /var/kerberos/krb5kdc/kdc.conf
    配置示例:
    [kdcdefaults]
    kdc_ports = 88
    kdc_tcp_ports = 88

    [realms]
    CAS.COM = { #域
    #master_key_type = aes256-cts
    acl_file = /var/kerberos/krb5kdc/kadm5.acl
    dict_file = /usr/share/dict/words
    admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
    supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
    }
    三、配置kadmin.acl文件
    [root@cen krb5kdc]# vi /var/kerberos/krb5kdc/kadm5.acl
    配置示例:
    */admin@EXAMPLE.COM *
    */admin@CAS.COM *

    四、配置krb5.conf
    [root@cen krb5kdc]# vi /etc/krb5.conf
    配置示例:

    Configuration snippets may be placed in this directory as well

    includedir /etc/krb5.conf.d/

    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

    [libdefaults]
    renew_lifetime = 7d
    ticket_lifetime = 24000
    default_realm = CAS.COM #域名
    default_keytab_name = /data/tomcat/data/cas.keytab #章节2.4中生成的keytab 文件
    dns_lookup_realm = false
    forwardable = true
    rdns = false
    dns_lookup_kdc = false
    default_tkt_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
    default_tgs_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
    permitted_enctypes = aes256-cts aes256-cts-hmac-sha1-96 aes128-cts-hmac-sha1-96 aes128-cts rc4-hmac des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac arcfour-hmac-md5
    allow_weak_crypto = yes
    default_ccache_name = KEYRING:persistent:%{uid}
    [realms]
    CAS.COM = { #域名
    kdc = 10.11.96.20:88 #域控制器所在机器IP
    admin_server = 10.11.96.20:749 #域控制器所在机器IP

    }

    [domain_realm]
    .cas.com = CAS.COM #域名
    cas.com = CAS.COM #域名

    五、创建/初始化Kerberos database
    [root@cen ~]# /usr/sbin/kdb5_util create -s -r CAS.COM
    其中,[-s]表示生成stash file,并在其中存储master server key(krb5kdc);还可以用[-r]来指定一个realm name —— 当krb5.conf中定义了多个realm时才是必要的。

    保存路径为/var/kerberos/krb5kdc 如果需要重建数据库,将该目录下的principal相关的文件删除即可

    在此过程中,我们会输入database的管理密码。这里设置的密码一定要记住,如果忘记了,就无法管理Kerberos server。
    当Kerberos database创建好后,可以看到目录 /var/kerberos/krb5kdc 下生成了几个文件:
    kadm5.acl
    kdc.conf
    principal
    principal.kadm5
    principal.kadm5.lock
    principal.ok

    创建管理员并输入密码(帐号admin/admin(一定要带xxx/admin) 密码一定要记住)
    [root@centos0xx ~]# /usr/sbin/kadmin.local -q “addprinc admin/admin”
    Authenticating as principal root/admin@TEST.COM with password.
    WARNING: no policy specified for admin/admin@TEST.COM; defaulting to no policy
    Enter password for principal “admin/admin@TEST.COM”:
    Re-enter password for principal “admin/admin@TEST.COM”:
    Principal “admin/admin@TEST.COM” created.
    六、 启动Kerberos daemons
    [root@cen /]# service krb5kdc start
    [root@cen /]# service kadmin start
    七、设置开机自动启动
    [root@cen /]# chkconfig krb5kdc on
    [root@cen /]# chkconfig kadmin on

    关于AES-256加密
    对于使用 centos5. 6及以上的系统,默认使用 AES-256 来加密的。这就需要集群中的所有节点上安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。
    下载的文件是一个 zip 包,解开后,将里面的两个文件放到下面的目录中:$JAVA_HOME/jre/lib/security

    查看当前的认证用户
    [root@cen krb5kdc]# klist

    6)TOMCAT8+配置
    一、上传Tomcat
    修改server.xml文件:
    端口修改为80,localhost更为本机DNS中记录的域名。
    二、部署CAS应用
    本文用于中广核时,直接拷贝现有的cas应用至webapps下即可
    上文提及的keytab文件,中广核配置的目录在/data/tomcat/data下,以及另一个重要配置文件login.conf文件。

    三、更改login.conf文件
    配置示例:

    四、更改cas.perporties文件
    此文件为cas应用中的配置文件,中广核的cas应用经过自己修改,将此文件提取出来了。并放置于/etc/cas目录下。
    调整内容如下:

    在/tomcat/webapps/cas/WEB-INF/spring-configuration目录下,文件propertyFileConfigurer.xml中,如图,修改指定cas.perporties文件位置

    5.常见问题
    1.连接拒绝

    原因:没有安装krb5-server等相关软件,没有创建database等导致的。
    解决方式:
    安装相关软件,并配置之后可解决此问题。
    2.读取keytab文件失败
    Caused by: GSSException: Failure unspecified at GSS-API level (Mechanism level: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96)
    at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:858)
    at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:342)
    at sun.security.jgss.GSSContextImpl.acceptSecContext(GSSContextImpl.java:285)
    … 147 more
    Caused by: KrbException: Invalid argument (400) - Cannot find key of appropriate type to decrypt AP REP - AES256 CTS mode with HMAC SHA1-96
    at sun.security.krb5.KrbApReq.authenticate(KrbApReq.java:278)
    at sun.security.krb5.KrbApReq.(KrbApReq.java:149)
    at sun.security.jgss.krb5.InitSecContextToken.(InitSecContextToken.java:108)
    at sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:831)
    … 149 more
    16:04:47.105 [http-nio-80-exec-2] ERROR org.jasig.cas.authentication.PolicyBasedAuthenticationManager - JcifsSpnegoAuthenticationHandler: Error performing Kerberos authentication: java.lang.reflect.InvocationTargetException (Details: Error performing Kerberos authentication: java.lang.reflect.InvocationTargetException)

    原因:因为centos5.6以上的系统默认采用的加密方式为AES-256加密,而生成keytab文件时,命令/crypto RC4-HMAC-NT 没有加入AES-256加密方式。
    解决方式:
    /crypto RC4-HMAC-NT 改为/crypto ALL
    安装 Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy File。
    下载的文件是一个 zip 包,解开后,将里面的两个文件放到下面的目录中:$JAVA_HOME/jre/lib/security

    3.认证和检查失败
    Failure unspecified at GSS-API level (Mechanism level: Checksum failed)
    原因:引起此问题的因素较多,本文遇到此问题,是因如下配置问题。
    cas.perporties 文件中

    6.总结
    至此全部配置完毕,经测试,可以实现所有加域账户可以免登录进入各集成此单点服务的业务系统,不需要经过登录窗口输入用户名、密码。
    总结:
    1.centos和Linux或者红帽等系统稍有区别,会产生不同问题。
    2.cas服务经过改造和标准版差异不大,可参考官网
    https://apereo.atlassian.net/wiki/spaces/CASUM/pages/103261459/SPNEGO
    或者其它资源,自行搭建cas服务。标准版的是开启https认证的,本文使用的是自己除去HTTPS的版本。自行改造。

    展开全文
  • 单点登录、域用户、常规登录、AD域

    万次阅读 2018-11-09 13:53:14
    1、单点登录 (1)啥是单点登录? 用户只需要登录一次就可以访问所有相互信任的应用系统。(Single Sign On,简称为 SSO) (2)解决啥问题? 各个server拿到同一个ID,都能有办法检验出ID的有效性、并且能得到...

    我是把CSDN博客当笔记使的,以前总结过不知道放在哪里了,好郁闷。

    微信公众号:CaesarMa

    仅限于基础

     

    1、单点登录   

    (1)啥是单点登录?

    用户只需要登录一次就可以访问所有相互信任的应用系统。(Single Sign On,简称为 SSO)

    (2)解决啥问题?

    各个server拿到同一个ID,都能有办法检验出ID的有效性、并且能得到ID对应的用户信息。

    (3)咋实现?

    实现步骤:

    登录应用1,服务器前验证 ——> Over(不通过,不通过验证失败)

                                             ——> 返回ticket(验证通过)  ——> 下次访问应用,2,发送ticket验证   ——> 以后登录应用2不需要再次登录(验证通过)

    实现SSO,具备条件

    • 所有应用系统共享一个身份认证系统
        统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行效验,判断其有效性。

    • 所有应用系统均能够识别和提取ticket信息
        要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。

    2、域用户

    (1)何为域?何为域用户?

    域就是一方诸侯,有自己的权限和领土范围。(自己的装逼解释);而领地内所有管辖和被管辖的都是域用户。

    (2)域,还是域用户?

    看了所有能看到的解释,都不满意。

    自己定义下,域的主要是,域对内的规则,域内用户的权限,域和域之间的规则;同域内用户之间的关系,权限。

    域,例如计算机里的域用户是需要服务器,进行域的创建,

    (3)域账号

    域账号,修改域帐号有关数据,直接修改域帐号服务器中的帐号,其他计算机就可立即获取更新后的帐号数据;

    本地账号,域中有数十台计算机,而且每一台计算机都必须有相同的帐号,如果以本机帐号操作,那么有一个用户修改了密码,就得同时修改每一台计算机的密码

    域帐号 的操作 NIS、LDAP、Hesiod(表示看不懂)

    3、AD域

    AD域的搭建与加入

    (1)啥是AD域?

    AD域是Active Directory的缩写,它是基于windows的一个组合,它可以集中控制加入域的所有计算机的权限,更高效的分配权限、提高资料的安全性、节省管理成本。

    域用户(我这里指的是创建域的这个用户),在任何一台加入域的计算机上都有管理员的权限。

    工作组和域

    展开全文
  • cas集成window AD 实现免身份认证单点登录,cas部署为centos系统,window server 2012 R2
  • 最近需要做一个CAS 单点登录返回用户信息的功能,而采用了LDAP认证AD域去返回用户信息,网上查阅了很多资料,因为涉及到版本可能有点高的问题,还有大部分是通过JDBC去连接数据,而AD域的方式去实现很少,没有什么可以参考...
  • 问题:  我想問為何關掉了AD伺服器, ... 控制器存储着目录数据,并管理用户和域的交互,包括用户登录进程、身份验证和目录搜索。当控制器出现故障无法工作时,它就无法提供以上服务了。如果控制器无法验...
  • 使用jcifs进行域单点登录

    千次阅读 2018-04-08 19:50:20
    通俗点来说就是单点登录,基本的实现就是通过jcifs。 原理为配置jcifs获取当前电脑登录的账号,然后通过账号去登录系统。 参考了一些资料,实现起来还是比较简单的。首先,项目引入要使用的jar包,即jcifs-...
  • 飞塔FSSO域单点登录

    千次阅读 2017-03-09 17:29:52
    本实验不用Agent。用防火墙搜集信息的。 实验前准备:装好服务器...2、单点登录配置----选择刚刚建立的的信息。 3、用户组FSSO设置 4、策略设置   注意:按照如上配完是不是测试不对
  • 基于Windows AD单点登录系统

    千次阅读 2018-10-08 21:53:07
    鉴于此,结合我们的实际情况,我设计了具有兆驰特色的单点登录系统,虽不能与商业软件媲美,但能够有效解决前述的痛点,满足我们的管理需求。也希望51CTO的网友提出宝贵的意见。 二、基于Windows AD单点登录系统...
  • Java AD 验证 用户名和密码   http://sapfamer.iteye.com/blog/1115488 http://www.cnblogs.com/yzy-lengzhu/archive/2013/01/23/2873588.html http://tieba.baidu.com/p/267871932
  • IIS7下设置AD单点登录

    2016-08-05 14:55:00
    简介:IIS7下设置AD单点登录 1、选中网站,双击“身份验证”: 2、启用“Window身份验证”、禁用“匿名身份验证”、启用“基本身份验证”: 3、在“基本身份验证”上面点右键,选择“编辑”,输入默认、...
  • 方案二:使用ldap连接AD域,前端传送计算机用户名和密码,后端回应token给前端实现sso单点登录 弊端:用户需要手动输入一次密码 方案三:使用ldap连接AD域,仅用用户名进行判断登录 前端:使用ie控件进行传输用户名...
  • 首先需要知道的两个基本概念:LDAP和AD,这个在我的博客中有写 http://blog.csdn.net/wyfde123/archive/2010/12/10/6068179.aspx 了解了以上的两个概念,下面才能着手开发基于账户进行验证的网站 开发中用到了...
  • 2.1. 安装AD 服务 2.2. 安装AD 轻型目录服务服务(Portal AD认证方式需要安装) 2.3. 安装AD 联合服务(SAML 认证方式需要安装) 3. 配置AD联合服务 3.1. 配置AD联合服务     ...
  • 基于Windows AD单点登录系统(一)

    千次阅读 2018-09-25 22:29:27
    二、基于Windows AD单点登录系统介绍 2.1 基本功能介绍 该系统主要实现以下三个方面的功能: 1)   共享一个身份认证系统 各应用系统与 Windows AD 和 HR 系统集成,基于 Windows AD 的用户数据库,实现用一套账号...
  • 需求:再加入的情况下,实现内用户一个简单的订餐系统,集成用户,在已登录用户帐号使用时,可以直接行使订餐功能,每天16之前,都可以订餐,退餐。超过16不能继续操作 实现:IIS+aps.net(c#)+access...
  • 关于AD域的介绍

    万次阅读 多人点赞 2019-05-07 16:14:57
    第一次写博客,记录一下如何搭建自己的域服务器,以及其中遇到的一些问题,感谢“我的bug我做主”的文章《C#实现AD域验证登录(一)》,为防止原文被作者删除,手动将原文复制下来,如有侵权,请及时告知。...
  • 1、服务器加入 2、IIS创建站点 3、对站站进行设置 3.1 开启访问模式 选择站点-身份验证 禁用“匿名身份验证”,启用“Windows身份验证”,请注意其余身份验证需要全部禁用: 如果没有看到“Windows身份...
  •  本文介绍的是,在单一目录下,使用Azure AD Connect,打通本地Domain Controller  我们需要准备的环境有:  1.Azure China订阅  2.在本地或者在微软云端,创建1台Windows VM,安装Domain Controller控制...
  • 它紧密地遵循CIFS规范(是Microsoft Windows平台标准文件共享协议),支持Unicode,命令管道,批处理,线程化调用者的IO复用,加密认证,完整事务,/工作组/主机/共享/文件枚举,NetBIOS 套接字和名称服务,smb://...
  • AD域基础

    千次阅读 2019-06-30 15:23:59
    文章目录AD域基础1.什么是AD域2.AD域和工作组的区别2.1 工作组特点及优缺点2.2 AD域特点及优缺点3.为什么要做AD域管理4.AD域可以做什么 AD域基础 1.什么是AD域 active directory 活动目录,指一组服务器和工作站的...
  • JAVA代码操作MS AD实现单点登录

    千次阅读 2006-01-17 16:12:00
    package it.service;import javax.swing.*;import java.awt.*;import javax.naming.*;import javax.naming.directory.*;import javax.naming.ldap.*;import java.util.*;import java.security.*;...
  • iTop —— 集成 AD 域登录

    千次阅读 2018-07-10 16:23:11
    登录iTop,找到管理工具中的配置文件编辑器,在大约213行,找到authent-ldap并作相应修改。 'authent-ldap' =&gt; array ( 'host' =&gt; '服务器IP', 'port' =&gt; 389, 'default_user' =&gt;...
  • cas在windows下集成AD域

    千次阅读 2015-11-13 14:16:27
    cas单点登陆集成AD域
  • filenet设置双ad域、多ad域、域集群认证 昨天面试问到一个双ad域认证的问题,当时也只是在工作中听过,但没有亲身研究过,现在把结果分享给大家,只是理论研究没有实现过,不过应该是没问题的。 filenet ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,965
精华内容 7,586
关键字:

ad域单点登录