在工作中,我有两个活动目录/域帐户:
username
- 我使用这个登录我的电脑adm_username
- 该用户是我负责的一些服务器的管理员
我们有一个使用 kerberos/negotiate 身份验证的内部 Web 应用程序。
我目前遇到以下问题:
- 当我从任何浏览器访问内部 Web 应用程序并以普通用户身份登录时
username
,浏览器会发送标头,表明我是adm_username
。
klist
执行 http 请求之前的输出,包含与我访问文件共享相关的票证:
C:\Users\username>klist
Current LogonId is 0:0x238dad3
Cached Tickets: (3)
#0> Client: username @ MYDOMAIN.COM
Server: krbtgt/MYDOMAIN.COM @ MYDOMAIN.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e00000 -> forwardable renewable initial pre_authent
Start Time: 1/7/2021 9:27:13 (local)
End Time: 1/7/2021 19:27:13 (local)
Renew Time: 1/14/2021 9:27:13 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: NOOSLDC01.mydomain.com
#1> Client: username @ MYDOMAIN.COM
Server: cifs/RKNWVDFS002P.mydomain.com @ MYDOMAIN.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a00000 -> forwardable renewable pre_authent
Start Time: 1/7/2021 9:27:13 (local)
End Time: 1/7/2021 19:27:13 (local)
Renew Time: 1/14/2021 9:27:13 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: NOOSLDC01.mydomain.com
#2> Client: username @ MYDOMAIN.COM
Server: cifs/NOOSLDC01.mydomain.com @ MYDOMAIN.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40a40000 -> forwardable renewable pre_authent ok_as_delegate
Start Time: 1/7/2021 9:27:13 (local)
End Time: 1/7/2021 19:27:13 (local)
Renew Time: 1/14/2021 9:27:13 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0
Kdc Called: NOOSLDC01.mydomain.com
然后我用浏览器访问内部网站,klist
再次执行,现在我有两张额外的票:
#3> Client: adm_username @ mydomain.COM
Server: krbtgt/mydomain.COM @ mydomain.COM
KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
Ticket Flags 0x40e00000 -> forwardable renewable initial pre_authent
Start Time: 1/7/2021 9:37:20 (local)
End Time: 1/7/2021 19:37:20 (local)
Renew Time: 1/14/2021 9:37:20 (local)
Session Key Type: AES-256-CTS-HMAC-SHA1-96
Cache Flags: 0x1 -> PRIMARY
Kdc Called: NOOSLDC01
#4> Client: adm_username @ mydomain.COM
Server: HTTP/rknwveva001p.mydomain.com @ mydomain.COM
KerbTicket Encryption Type: RSADSI RC4-HMAC(NT)
Ticket Flags 0x40a00000 -> forwardable renewable pre_authent
Start Time: 1/7/2021 9:37:20 (local)
End Time: 1/7/2021 19:37:20 (local)
Renew Time: 1/14/2021 9:37:20 (local)
Session Key Type: RSADSI RC4-HMAC(NT)
Cache Flags: 0
Kdc Called: NOOSLDC01.mydomain.com
注意到我获得的票数与预期adm_username
不符username
。
其他信息:
- 即使我重新启动后也会发生这种情况。
- 以前从未发生过。在发生这种情况的那天,我使用
adm_username
(通过执行net use \\server\share /user:MYDOMAIN\adm_username
)访问了一些 UNC 路径。这是我能想到的唯一一件不寻常的事情,我怀疑这与此有关。 - 更新:如果我执行 a,也会发生同样的事情(只有我获得 cifs 票证而不是 http),
dir \\servername\c$
因此 Windows 似乎以某种方式缓存了前一个net use
问题:
- 这是什么原因造成的?这可能是客户端的问题还是 AD/服务器的问题?
- 怎么修?
答案1
解决我的问题的方法是使用控制面板 | 用户帐户 | 凭据管理器,然后为服务器/用户名组合的 Windows 凭据选择“删除”。
内部 Web 应用程序由我使用访问文件共享的其中一台服务器提供服务adm_username
,然后 Windows Kerberos 系统会告诉浏览器在访问 Web 服务器时使用此用户名。
这似乎是我的问题的根本原因。