思路一:
在Windows客户端与Windows服务器的kerberos认证过程中,通过第二阶段客户端向KDC(密钥分配中心)的TGS数据交互,客户端获取到了可以与服务端会话的Service_key和Ticket。
问题一:
如果服务器端KDC用开源的Samba实现(前提Samba内实现了MIT的kerberos协议),是不是我们就能读取到Service_key了呢?
思路二:
Windows服务器(假定Windows server2008R2, IP地址:192.168.0.76)充当Exchange2010服务器, Windows客户端(假定Windows 7, IP地址:192.168.0.176) 充当Exchange2010客户端。
客户端会176向服务器76发起请求认证的时候,我们可以设置仅kerberos认证。此时会有数据包的交互,客户端176向服务器76的KDC(密钥管理中心)的AS(认证服务器)获取票据Ticket后,再向服务器76端的KDC的TGS(票据授权服务器)获取可以向服务器76认证的Service_key及票据Ticket。
此时,服务器76端的系统Windows Server2008R2是包含KDC的。因为Server2008R2内还含有主域控制器(PDC),我们知道Linux操作系统,比如Redhat,Centos是包含开源Samba软件的,或者我们可以安装新的版本,如Samba4.0.1x。而查资料可以,Samba是可以充当PDC的,且samba集成KDC的功能。资料源头(Redhat官网):https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/4/html。
问题二:
用Samba作为中间DC(域名控制器),能否同步过来Server端认证客户端时的Service_key和票据Ticket信息,如果可行的话,大致的接口是什么?
进展:已经知道Samba-tool(samba内含工具)从Red-hat端实现获取到了服务器端的用户名信息,但是至于密钥的获取还有一段路要走。且samba-tool以DC加入域的概念也不好理解。
困难点如下:
困难一:
Samba的配置相对复杂,和我设定相关的配置需要谨慎查询资料,稍有不慎,会导致各种问题,易愈陷愈深;
困难二:
Windows域的概念复杂,如DC的功能。Redhat官网指出,Windows充当PDC时,Samba不能充当BDC(备份域控制器);同时Samba充当PDC时,Windows不能充当BDC。但思路二,想从同步角度思考,又避免不了DC之间的同步。
困难三:
Kerberos认证体系复杂,需要反复阅读Kerberos官网协议文档才能理解其精髓。
困难四:
思路一、二的目的是一样的,但结果的获取需要结合Windows域体系、Samba体系、Kerberos认证体系,三者结合交叉的概念也需要广查资料思考。
已经通过国外几个专业论坛、Samba官网求救,无奈时间紧迫,需要紧急讨论出思路的可行性,特悬赏求助!
或者您有没有其他获取Service_key及Ticket的思路,万分感谢与您的宝贵思路和建议!
作者:铭毅天下
转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/14539755