我正在关注此帖子http://blog.springsource.com/2009/09/28/spring-security-kerberos/以在本地服务器上设置服务主体,我将用它来测试与Active Directory的spring安全集成。服务器运行tomcat,我部署应用程序,然后通过http://localhost:8080/myapp
问题
我的服务提供商名称应该是什么?
文章说:
为此,每个Web应用程序都需要在 Kerberos服务器并获取服务主页和共享密钥 分配。对于Web应用程序,服务主体必须是 “HTTP / @ DOMAIN”。例如 “HTTP /web.springsource.com@SPRINGSOURCE.COM”,如果你的应用程序运行 web.springsource.com。
由于我正在localhost
上运行,我想HTTP/localhost@....
我将放置@SPRINGSOURCE.COM?
答案 0 :(得分:0)
要使Kerberos正常工作,您应该在网络中配置DNS和AD服务器。应用程序服务器和客户端计算机必须使用DNS,客户端计算机必须使用AD身份验证。不允许使用名称“localhost”。应用程序服务器可能不在域中。
假设您需要的域中的所有计算机都是:
在服务器上,域控制器,打开命令提示符并运行以下命令:
C:> setspn -A HTTP / appserver myUser
C:> setspn -A HTTP / appserver.yourdomain.local myUser
检查正确:
C:> setspn -l myUser(如果显示您之前输入的内容,则一切正常)
接下来,创建一个密钥文件:
C:> ktpass / out C:/myUser.keytab / mapuser myUser@YOURDOMAIN.LOCAL / princ HTTP/appserver.yourdomain.local@YOURDOMAIN.LOCAL / pass + rndPass / crypto RC4-HMAC-NT / ptype KRB5_NT_PRINCIPAL / kvno 0
就是这样,现在您可以在Web应用程序中使用文件 myUser.keytab 和主要名称 HTTP / appserver.yourdomain.local
将来可能会有用: