Java JDK5下Apache和Tomcat的Kerberos SSO
我是通过kerberos协议进行身份验证的新手,所以我尝试阅读了很多关于该协议的内容,但似乎找不到任何约束的细节。以下是我所拥有的:Java JDK5下Apache和Tomcat的Kerberos SSO,java,apache,tomcat,single-sign-on,kerberos,Java,Apache,Tomcat,Single Sign On,Kerberos,我是通过kerberos协议进行身份验证的新手,所以我尝试阅读了很多关于该协议的内容,但似乎找不到任何约束的细节。以下是我所拥有的: 一种Active Directory服务器,用户在其上通过身份验证登录到其工作站 每个最终用户都使用IE 7连接到我的intranet应用程序 具有负载平衡的Apache服务器 一些Tomcat服务器充当Apache服务器的工作服务器 在每个tomcat上,我有2个jakarta servlet在运行,用户只在一个servlet上连接(此外,我将把它称为serv
- 一种Active Directory服务器,用户在其上通过身份验证登录到其工作站
- 每个最终用户都使用IE 7连接到我的intranet应用程序
- 具有负载平衡的Apache服务器
- 一些Tomcat服务器充当Apache服务器的工作服务器
- 在每个tomcat上,我有2个jakarta servlet在运行,用户只在一个servlet上连接(此外,我将把它称为servlet,就好像只有一个servlet一样)
- 我的雄猫需要在jdk5下运行。不是jdk6或jdk4。现在是jdk5时段
谢谢好的,我成功了:
[…]
ServerName apache.mydom.com:80
[…]
LoadModule auth_kerb_module modules/mod_auth_kerb.so
[…]
<LocationMatch /secure)>
[… some other stuff …]
Order allow,deny
Allow from all
AuthType Kerberos
AuthName "Authentification requise"
KrbAuthRealms MYDOM.COM
#this allows user to be saved in the request
KrbSaveCredentials on
#this one force Negotiate AuthType instead of basic fallback
KrbMethodNegotiate on
#this trim the realm from username saved in the request (request.getRemoteUser() will give you "user" instead of "user@MYDOM.COM"
KrbLocalUserMapping on
KrbAuthoritative on
KrbVerifyKDC on
Krb5Keytab /install/binaries/httpd/apache.keytab
KrbServiceName HTTP
require valid-user
</LocationMatch>
[…]
ServerName apache.mydom.com:80
[…]
LoadModule auth_kerb_module modules/mod_auth_kerb.so
[…]
[…其他一些东西…]
命令允许,拒绝
通融
身份验证类型Kerberos
AuthName“认证要求”
KrbAuthRealms MYDOM.COM
#这允许将用户保存在请求中
KrbSaveCredentials on
#这是一种强制类型,而不是基本的回退
KrbMethodNegotiate on
#这将从请求中保存的用户名(request.getRemoteUser()将为您提供“user”而不是user@MYDOM.COM"
上的KrbLocalUserMapping
Krbautoritative on
KrbVerifyKDC on
Krb5Keytab/install/binaries/httpd/apache.keytab
KrbServiceName HTTP
需要有效用户
我在web上几乎找不到的一件事是,您必须修改tomcat服务器配置(tomcat/conf/server.xml):
这非常重要,因为没有它,tomcat将无法从tomcat auth检索任何信息。
也不要忘记,DNS对于Kerberos安装非常重要。如果您有任何问题,请尝试检查您的DNS以查找所有服务器。回答非常好!FTR:JDK5不支持SPNEGO。
<Connector [... AJP connector configuration ...] request.tomcatAuthentication="false"/>