2

我正在关注这篇文章http://blog.springsource.com/2009/09/28/spring-security-kerberos/在本地服务器上设置服务主体,我将使用它来测试 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?

4

1 回答 1

1

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

假设域中的所有机器,那么您需要的是:

  1. 分配应用程序服务器 dns 名称,例如 appserver ( appserver .yourdomain.local)
  2. 在直接和反向 DNS-server 区域添加您的服务器应用程序的 DNS 名称。(链接
  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

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

将来可能有用:

于 2014-10-27T05:14:25.993 回答