为2k8服务器中的springsecurity kerberos创建服务主体

时间:2013-02-06 12:43:44

标签: active-directory spring-security windows-server-2008-r2 spring-security-kerberos

我正在关注此帖子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?

的内容

1 个答案:

答案 0 :(得分:0)

要使Kerberos正常工作,您应该在网络中配置DNS和AD服务器。应用程序服务器和客户端计算机必须使用DNS,客户端计算机必须使用AD身份验证。不允许使用名称“localhost”。应用程序服务器可能不在域中。

假设您需要的域中的所有计算机都是:

  1. 分配应用程序服务器dns名称,例如appserver( appserver .yourdomain.local)
  2. 在直接和反向DNS服务器区域中添加服务器应用程序的DNS名称。 (link
  3. 在域中创建一个简单用户并设置选项“不更改密码”和“密码永不过期限制”(例如用户名 myUser
  4. 在服务器上,域控制器,打开命令提示符并运行以下命令:

    C:> setspn -A HTTP / appserver myUser

    C:> setspn -A HTTP / appserver.yourdomain.local myUser

  5. 检查正确:

    C:> setspn -l myUser(如果显示您之前输入的内容,则一切正常

  6. 接下来,创建一个密钥文件:

    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

  7. 就是这样,现在您可以在Web应用程序中使用文件 myUser.keytab 和主要名称 HTTP / appserver.yourdomain.local

    将来可能会有用: