2017-07-03 66 views
0

我们正在尝试安装kerberos,最初我们必须使用kinit进行初始化才能使身份验证正常工作。我们像团队中的其他人一样创造了我们的校长。现在突然之间,三名用户无法获得他们的Kerberos工作。因为我们都是开发者,所以我们的机器需要充当服务器,所以我们为每台机器创建了我们的主体。Kerberos不起作用,响应头中没有令牌

奇怪的是,它在一开始就适用于所有人,现在它只为少数人工作。我们能够看到klist的我们的密钥表名

这是我们如何创造的keytabs

C:\Windows\system32>ktpass -princ HTTP/<complete system name>@<domain> -pass <password> -mapuser <keytab_filename>@<domain> -ptype krb 5_nt_principal -kvno 0 -out c:\keytabs\<keytab_filename>Targeting domain controller: <domain server>.<domain> Successfully mapped HTTP/<complete system name> to <keytab_filename>. Password succesfully set! Key created. Output keytab to c:\keytabs\<keytab_filename>: Keytab version: 0x502 keysize 84 HTTP/<complete_system_name>@<domain> ptype 1 (KRB5_NT_PR INCIPAL) vno 0 etype 0x17 (RC4-HMAC) keylength 16 (some hash number)

唯一的区别我可以看到(从工作机非工作机器的Kerberos)是响应标头具有协商授权但响应标头未响应令牌。我们无法弄清楚问题所在。

Pragma: no-cache Connection: keep-alive Content-Length: 71 Cache-Control: no-cache, no-store, must-revalidate Content-Type: text/html;charset=UTF-8 Date: Fri, 30 Jun 2017 20:18:06 GMT Expires: 0 Server: JBoss-EAP/7 WWW-Authenticate: Negotiate X-Powered-By: Undertow/1

我确信,浏览器使用Kerberos的this

任何帮助是极大的赞赏。

回答

1

我的应用程序缺少web模块中的jboss安全协商依赖关系。

<jboss-deployment-structure> 
    <deployment> 
    <dependencies> 
     <module name="org.jboss.security.negotiation"/> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

一旦加入这个依赖,Kerberos票据开始出现在请求和响应