Windows 在没有 Kerberos 委托的情况下,同一域中的服务之间的身份验证

Windows authentication between services in the same domain without Kerberos delegation

我们有两个 Intranet 应用程序都托管在同一个域上,都托管在 IIS 上,都使用 Windows 身份验证但托管在不同的 windows 2008 服务器上。

我的目标是让ASP.net网络应用程序A调用服务B。我还希望A将登录用户的身份验证信息传递给B。

有一件事,我想避免 Kerberos 委派,因为设置起来很麻烦,而且还有安全问题。

你能推荐我实现目标的方法吗?

我不确定您认为如何在不进行授权的情况下安全地 从 A 验证 B。

如果您不关心这样做的安全性,您可以在请求中传递用户名并在远端模拟。

或者,您可以将经过身份验证的信息填充到令牌(JWT、SAML 等)中,使用共享密钥对其进行签名,并将其包含在请求中。然后服务器 B 可以使用共享密钥验证它并在必要时进行模拟。这确实意味着您需要确保两台服务器都知道秘密,并弄清楚如何生成令牌。

虽然委派是到达此处的明智方式。您不必弄清楚模拟或构建一种方法来铸造和验证令牌。它主要由配置驱动。