CAS SSO与AD(SPNEGO)

时间:2014-06-24 15:12:51

标签: java spring-security active-directory kerberos cas

我尝试使用SPNEGO创建自动登录部署;基于本教程:http://jasig.github.io/cas/development/installation/SPNEGO-Authentication.html

我想将AD用作密钥分发中心,以便我们的域用户通过CAS自动登录到我们的应用程序。

我们的域中有一个用户,它有一个SPN集

已为该用户生成密钥表文件,我已将其设置在login.conf文件中

以下是cas config的相关部分:

<bean id="jcifsConfig" class="org.jasig.cas.support.spnego.authentication.handler.support.JCIFSConfig">
    <property name="jcifsServicePrincipal" value="***SPN***" />
    <property name="kerberosDebug" value="true" />
    <property name="kerberosRealm" value="***REALM/DOMAIN***" />
    <property name="kerberosKdc" value="***Active Directory IP***" />
    <property name="loginConf" value="***Path to login.conf***" />
</bean>

登录conf

jcifs.spnego.initiate {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="***Path tp keytab***";
};
jcifs.spnego.accept {
   com.sun.security.auth.module.Krb5LoginModule required storeKey=true useKeyTab=true keyTab="***Path tp keytab***";
};

问题是我得到的只是来自客户端浏览器的NTLMSSP令牌。所以我可以看到某种协商已经开始,但身份验证总是失败。

教程/如何在&#34;测试SPN帐户&#34;中引用Kerberos配置。部分。这是我不明白的。我应该在托管CAS的机器上安装Kerberos服务器(这不是我想要的)吗?这对我来说似乎不合逻辑,因为我希望AD提供Kerberos票证?

感谢任何帮助!

谢谢, 标记

编辑:

这个问题让我很困扰:教程/如何在&#34;测试SPN帐户中引用Kerberos配置&#34;部分。这是我不明白的。我应该在托管CAS的机器上安装Kerberos服务器(这不是我想要的)吗?这对我来说似乎不合逻辑,因为我希望AD提供Kerberos票证?

1 个答案:

答案 0 :(得分:0)

您必须将浏览器配置为使用CAS站点执行SPNEGO。

这样做可以很容易(OS / X上的Safari开箱即用)到非常困难(让资源管理器信任您域外的网站)。

Old Explorer Version Example

如果您收到类似NTLM的数据包,则表示浏览器无法将您的站点识别为可以使用kerberos凭据访问的站点之一。