首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对Active的Tomcat SPNEGO身份验证无效

针对Active的Tomcat SPNEGO身份验证无效
EN

Server Fault用户
提问于 2010-03-25 13:03:54
回答 1查看 3.6K关注 0票数 0

我试图使用带有tomcat的http://spnego.sourceforge.net组件来验证AD。

我创建了我的SPN的"setspn.exe -A HTTP/servername SVCTomcat“& "setspn.exe -A HTTP/serviname.fqdn.net SVCTomcat”

我已经创建了krb5.conf & login.conf文件,并在web.xml ie中设置了过滤器。

代码语言:javascript
复制
<filter-name>SpnegoHttpFilter</filter-name>
<filter-class>net.sourceforge.spnego.SpnegoHttpFilter</filter-class>
    <param-name>spnego.allow.unsecure.basic</param-name>
    <param-value>false</param-value>
    <param-name>spnego.login.client.module</param-name>
    <param-value>spnego-client</param-value>
    <param-name>spnego.krb5.conf</param-name>
    <param-value>krb5.conf</param-value>
    <param-name>spnego.login.conf</param-name>
    <param-value>login.conf</param-value>
    <param-name>spnego.preauth.username</param-name>
    <param-value>SVCTomcat</param-value>
    <param-name>spnego.preauth.password</param-name>
    <param-value>Pasword</param-value>
    <param-name>spnego.login.server.module</param-name>
    <param-value>spnego-server</param-value>
    <param-name>spnego.prompt.ntlm</param-name>
    <param-value>false</param-value>
    <param-name>spnego.logger.level</param-name>
    <param-value>2</param-value>

注意,我已经从其中去掉了无关的标记,所以它不是实际的XML。

当我转到受此过滤器保护的页面时,就会在catalina日志文件中得到它。25-2010年3月12:41:26 org.apache.catalina.startup.Catalina启动信息:服务器启动时间为4615 ms 25-2010年3月12:41:47 net.sourceforge.spnego.SpnegoHttpFilter doFilter FINE: principal=SYSTEM@TESTDOMAIN

在网站上的hello_spnego.jsp示例中,它只报告用户tomcat作为(SYSTEM)运行的名称,而不是我正在连接的用户。

在调试页面的一半时间里,作者似乎停了下来,所以除了三次检查我的配置之外,我没有其他地方可以查看。

有什么想法吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2010-04-06 21:42:38

假设您使用的是运行在与Tomcat相同的机器上的web浏览器来访问hello_spnego.jsp页面,下面是我的设想:

  1. 您没有设置SpnegoHttpFilter配置参数"spnego.allow.localhost“。
  2. 当筛选器(http://spnego.sourceforge.net/reference_docs.html)的参考指南声明此设置默认为false时,仔细阅读源代码(SpnegoFilterConfig.java第80行),将此参数默认为true。
  3. 当此参数设置为true时,SpnegoHttpFilter将绕过身份验证,而只是将经过身份验证的主体设置为正在运行的用户帐户Tomcat。这就是你为什么要得到“SYSTEM@TESTDOMAIN”结果的原因。

如果我最初的假设是正确的,那么尝试从远程机器点击hello_spnego.jsp页面,它应该执行实际的身份验证。(您可能需要为浏览器启用Kerberos身份验证。)

请注意,筛选器作者正在通过SourceForge项目论坛在http://sourceforge.net/projects/spnego/forums/上主动回答问题。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/126190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档