我有一个 Web 应用程序(主机名:service.domain.com),我希望使用 Kerberos 身份验证来识别登录到 Windows 域的用户。Microsoft AD (Windows Server 2008 R2) 提供 Kerberos 服务。
该服务是一个 Java Web 应用程序,使用 Spring Security Kerberos 扩展库来实现 SPNEGO/Kerberos 协议。我在 AD 中创建了一个 keytab 文件,其中包含一个共享机密,该文件应该足以验证客户端浏览器使用 Web 应用程序发送的 Kerberos 票证。
我的问题是,服务主机 (service.domain.com) 是否需要防火墙访问 (TCP/UDP 88) 到 KDC (kdc.domain.com) 或者密钥表文件是否足以让服务主机能够解密Kerberos 票证并提供身份验证?
我有一个 Spring MVC 应用程序,它使用 Spring Security 进行登录。我使用 Apache Webserver 作为代理和 Tomcat。下面是我的 /etc/apache2/sites-enabled/example.com.conf 文件:
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ProxyPreserveHost On
ProxyRequests off
ProxyPass /myapp/j_spring_security_check http://XX.YY.ZZ.WW:8080/myapp/j_spring_security_check
ProxyPassReverse /myapp/j_spring_security_check http://XX.YY.ZZ.WW:8080/myapp/j_spring_security_check
ProxyPass /myapp http://XX.YY.ZZ.WW:8080/myapp
ProxyPassReverse /myapp http://XX.YY.ZZ.WW:8080/myapp
Run Code Online (Sandbox Code Playgroud)
我的问题是现在我必须访问我的网站:
www.example.com/myapp
我想在哪里访问它
www.example.com
我尝试使用它,但随后登录无法正常工作。我应该如何为此设置 ProxyPass 和 ProxyPassReverse?