Kerberos 不起作用,没有令牌响应 header
Kerberos doesn't work, no token in response header
我们正在尝试设置 kerberos,最初我们必须使用 kinit 进行初始化才能进行身份验证。我们像团队中的其他人一样创建了我们的负责人。现在突然间三个用户无法让他们的 kerberos 工作。因为我们都是开发人员,所以我们的机器需要充当服务器,所以我们为每台机器创建了我们的主体。
奇怪的是它一开始对每个人都有效,现在只对少数人有效。我们能够在 klist
中看到我们的密钥表名称
这就是我们创建密钥表的方式
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 工作机器到 non-working 机器)是响应 headers 具有协商授权但响应 headers 没有响应用令牌。我们无法找出问题所在。
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
我确定浏览器正在使用带有 this
的 kerberos
非常感谢任何帮助。
我的应用程序缺少 Web 模块中的 jboss 安全协商依赖项。
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.jboss.security.negotiation"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
添加此依赖项后,kerberos 票证开始出现在请求和响应中
我们正在尝试设置 kerberos,最初我们必须使用 kinit 进行初始化才能进行身份验证。我们像团队中的其他人一样创建了我们的负责人。现在突然间三个用户无法让他们的 kerberos 工作。因为我们都是开发人员,所以我们的机器需要充当服务器,所以我们为每台机器创建了我们的主体。
奇怪的是它一开始对每个人都有效,现在只对少数人有效。我们能够在 klist
中看到我们的密钥表名称这就是我们创建密钥表的方式
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 工作机器到 non-working 机器)是响应 headers 具有协商授权但响应 headers 没有响应用令牌。我们无法找出问题所在。
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
我确定浏览器正在使用带有 this
的 kerberos非常感谢任何帮助。
我的应用程序缺少 Web 模块中的 jboss 安全协商依赖项。
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.jboss.security.negotiation"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
添加此依赖项后,kerberos 票证开始出现在请求和响应中