KDC (windows 2008): 10.0.2.12 (也就是域服务器)

Workstation (windows 10): 10.0.2.100(也就是公司域内电脑)

Webserver (CentOS release 6.5 (Final), apache2.4): 10.0.2.15 webserver.example.com

1、配置Webserver,在 10.0.2.15 上 安装krb5-libs,krb5-workstation, apache , mod_auth_kerb(apache的kerberos module),        yum install -y krb5-libs krb5-workstation mod_auth_kerb

2、首先将Workstation的DNS指向域服务器,在公司DNS服务器上新建A记录(webserver.example.com)指向10.0.2.15

3、确保kdc,Webserver,workstation的时间是一致的,kerberos要求时差不能超过5分钟

4、配置Webserver的/etc/krb5.conf

includedir /etc/krb5.conf.d/[logging]default = FILE:/var/log/krb5libs.logkdc = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.log[libdefaults]dns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falsepkinit_anchors = /etc/pki/tls/certs/ca-bundle.crtdefault_realm = EXAMPLE.COM //域default_ccache_name = KEYRING:persistent:%{uid}[realms]SPEECHOCEAN.COM = {kdc = 10.0.2.12:88 //KDC默认端口admin_server = 10.0.2.12:749}[domain_realm]
# .example.com = EXAMPLE.COM
webserver.example.com = EXAMPLE.COM //此处域名要与webserver一致

5、测试kerb配置是否成功

[root@localhost ~]# kinit client2@EXAMPLE.COM
Password for client2@EXAMPLE.COM
[root@localhost ~]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: client2@EXAMPLE.COMValid starting       Expires              Service principal
03/19/2019 12:00:00  03/19/2019 22:00:00  krbtgt/EXAMPLE.COM@EXAMPLE.COMrenew until 03/26/2019 11:59:44

6、在AD上为webserver创建principal

登录域服务器,执行:

ktpass -princ HTTP/webserver.example.com@EXAMPLE.COM -mapuser client2 -pass xxxxx -out D:\web.keytab

将生成的web.keytab文件放置到Webserver上,比如/etc/web.keytab,并设置只读权限

chown apache:apche /etc/web.keytab
chmod 400 /etc/web.keytab

验证AD发送的tickets是否正确

[root@localhost ~]# kvno HTTP/webserver.example.com@EXAMPLE.COM
HTTP/webserver.example.com@EXAMPLE.COM: kvno = 4
[root@localhost ~]# klist -e
Ticket cache: KEYRING:persistent:0:0
Default principal: client2@EXAMPLE.COMValid starting       Expires              Service principal
03/19/2019 12:09:23  03/19/2019 22:00:00  HTTP/webserver.example.com@EXAMPLE.COMrenew until 03/26/2019 11:59:44, Etype (skey, tkt): arcfour-hmac, arcfour-hmac
03/19/2019 12:00:00  03/19/2019 22:00:00  krbtgt/EXAMPLE.COM@EXAMPLE.COMrenew until 03/26/2019 11:59:44, Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96[root@localhost ~]# klist -e -k -t /etc/web.keytab
Keytab name: FILE:/etc/web.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------4 01/01/1970 08:00:00 HTTP/webserver.example.com@EXAMPLE.COM (arcfour-hmac)

7、配置apache的mod_auth_kerb

我是用yum安装的mod_auth_kerb,在/etc/httpd/conf.modules.d/10-auth_kerb.conf会有配置文件

需要注意的是,如果有其他的apache权限配置,比如/etc/httpd/conf/httpd.conf里面有Require all denied或者Require all granted,需要注释掉!!否则apache不会开启mod_auth_kerb的验证。可以通过修改LogLevel 值为debug,来调试看下mod_auth_kerb是否运行。

LoadModule auth_kerb_module modules/mod_auth_kerb.so
<Directory />AuthType KerberosAuthName "Windows AD Account"KrbMethodNegotiate OnKrbMethodK5Passwd OffKrbAuthRealms EXAMPLE.COMKrb5KeyTab /etc/web.keytabrequire valid-user
</Directory>

8、如果配置没问题,这个时候使用登录了域的电脑访问webserver.example.com ,会提示登录框,输入正确的域账号可以访问网站。如果想要免去输入密码需要在域服务器设置组策略。具体可以参见这篇文http://www.cnblogs.com/love007/p/4082875.html,目前可以支持ie和chrome两种浏览器自动登录,firefox好像不支持。edge经测试需要windows2016做域服务器才可以支持。

9、如何获取当前域用户?PHP可以使用$_SERVER变量获取

<?php
echo $_SERVER['REMOTE_USER']
?>

10、参考文章

http://blog.chinaunix.net/uid-11618445-id-3347394.html

网站识别Windows AD 域账号,并自动登录相关推荐

  1. win10ad域 用户和计算机,Windows AD域通过GPO设置客户端电脑本地管理员账号密

    0x01 介绍 在实际生产环境中,由于Windows AD域的限制,桌面对客户端电脑进行软件安装或其他系统配置时,均需要管理员权限,而网内客户端众多,不同客户端电脑密码可能都是不同的,也经常忘记本地管 ...

  2. Centos 7加入Windows AD域及搭建基于Windows AD域(即ldap)认证的samba共享

    在我的windows server系列的文章中已经搭建好了windows AD域,现在要求Centos 7服务器加入AD域并实现基于AD认证的samba共享. 物理环境: Windows Server ...

  3. 使用Novell.Directory.Ldap.NETStandard在.NET Core中验证AD域账号

    Novell.Directory.Ldap.NETStandard是一个在.NET Core中,既支持Windows平台,又支持Linux平台,进行Windows AD域操作的Nuget包. 首先我们 ...

  4. libnss mysql_Ubuntu通过LDAP集成AD域账号登录(libnss-ldap方式)

    Ubuntu通过LDAP集成AD域账号登录(libnss-ldap方式): # apt-get install libnss-ldap   (中间直接回车,忽略) # vi /etc/nsswitch ...

  5. linux nslcd服务,CentOS 6通过ldap集成AD域账号(nslcd方式)

    CentOS 6通过ldap集成AD域账号(nslcd方式): yum install nss-pam-ldapd(rpm -qa nss-pam-ldapd,rpm -ql nss-pam-ldap ...

  6. Windows AD域功能介绍、Windows AD域方案介绍

    Windows AD域功能介绍.Windows AD域方案介绍 功能一.AD域管理 https://www.manageengine.cn/products/ad-manager/ 1.AD域管理 通 ...

  7. ad被锁定的账户_大量AD域帐号自动被锁定

    设置域帐号登陆次数后自动锁定完则,有大量AD域帐号自动被锁定.在2003域安全策略中,设置登陆3次密码错误后,自动锁定帐号:在登封3次后,帐号可以自动锁定.但是有大批帐号没有登陆错误情况下自动锁定,而 ...

  8. Windows AD域集成登录、组织结构同步

    此设置适合Windows AD域(Windows LDAP),非Windows AD域(比如 Free LDAP)请参考LDAP用户统一登录. 1.进入"系统常用管理功能 " -& ...

  9. 华润大学ldap账号是什么_认证配置 - 接入 LDAP / AD 域账号(Beta) - 《KubeSphere v2.1 使用手册》 - 书栈网 · BookStack...

    接入 LDAP / AD 域账号(Beta) 如果您的企业使用 LDAP 作为用户认证系统,您可以在 KubeSphere 中通过脚本配置内置的 OpenLDAP 接入您的 LDAP 用户系统,从而允 ...

最新文章

  1. Windows Server 2019 Standard上部署安装MongoDB
  2. java搭建阿里云服务器环境(java环境+mysql+tomcat)和部署 JavaWeb 项目到云服务器(十分详细)
  3. 全球及中国二乙氨基羟基苯甲酰基苯甲酸己酯行业规模分析与市场需求预测报告2022版
  4. Java 进阶 ——2019 计划要读的书
  5. 上传文件到云服务器存储路径,上传文件到云服务器存储路径
  6. ExecutorService——shutdown方法和awaitTermination方法
  7. 在Grails 2.0中使用Servlet 3.0异步功能
  8. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析 1
  9. [LibTorch] C++ 调用 PyTorch 导出的模型
  10. tomcat没有编译重新编写的代码
  11. 如何在计算机命令内转换操作盘,如何在命令行窗口中从驱动器C切换到驱动器D...
  12. 精通JavaScript系列目录
  13. 电音制作宿主软件-Ableton Live Suite v10.1.30 WIN-MAC 中文版下载
  14. 王道训练营3月10日
  15. java 生成根据图片内容生成图片包含格式有【png jepg GIF tiff wbmp】
  16. 嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程
  17. 【MindSpore】【数据集】数据集内数据获取失败导致迭代器退出
  18. 自动化项目倍加福WCS-PG210E使用GSD文件
  19. 计算机教室网络平面示意图,计算机机房平面布置图.doc
  20. 怎么运用好ZBrush中Magnify膨胀笔刷

热门文章

  1. DKN: Deep Knowledge-Aware Network for News Recommendation简析
  2. 论文阅读(13) 水母游泳过程中的神经机械波共振(2021)
  3. 对8086的存储器扩展
  4. 超硬核!操作系统学霸笔记,考试复习面试全靠它
  5. java 歌词_网易云歌词爬取(java)
  6. centos6 安装 nscd 清除DNS缓存
  7. 一文多发神器--ArtiPubOpenWrite
  8. [网络安全学习篇1]:windowsxp、windows2003、windows7、windows2008系统部署(千峰网络安全视频笔记)
  9. 【测试】18.系统测试及类型
  10. 万能应用市场删除后台自动安装