Active directory 在2k8服务器中为springsecurity kerberos创建服务主体

Active directory 在2k8服务器中为springsecurity kerberos创建服务主体,active-directory,spring-security,windows-server-2008-r2,spring-security-kerberos,Active Directory,Spring Security,Windows Server 2008 R2,Spring Security Kerberos,下面我将在本地服务器上设置一个服务主体,用于测试spring与active directory的安全集成。服务器运行tomcat,我部署应用程序并通过http://localhost:8080/myapp 问题 我的服务提供商名称应该是什么 文章说, 为了实现这一点,每个web应用程序都需要在 Kerberos服务器,并获取服务优先级和共享密钥 分配。对于web应用程序,服务主体必须是 “HTTP/@DOMAIN”。例如 “HTTP/web.springsource。com@SPRINGSOUR

下面我将在本地服务器上设置一个服务主体,用于测试spring与active directory的安全集成。服务器运行tomcat,我部署应用程序并通过
http://localhost:8080/myapp

问题

我的服务提供商名称应该是什么

文章说,

为了实现这一点,每个web应用程序都需要在 Kerberos服务器,并获取服务优先级和共享密钥 分配。对于web应用程序,服务主体必须是 “HTTP/@DOMAIN”。例如 “HTTP/web.springsource。com@SPRINGSOURCE.COM“,如果您的应用程序在 web.springsource.com


因为我在
localhost
上运行,所以我想应该是
HTTP/localhost@....
我应该用什么来代替
@SPRINGSOURCE.COM?

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

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

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

    C:>setspn-HTTP/appserver myUser

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

  • 检查是否正确:

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

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

    C:>ktpass/out C:/myUser.keytab/mapusermyUser@YOURDOMAIN.LOCAL/princ HTTP/appserver.yourdomain。local@YOURDOMAIN.LOCAL/pass+rndPass/crypto RC4-HMAC-NT/ptype KRB5\u NT\u PRINCIPAL/kvno 0

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

    将来可能有用: