【发布时间】:2009-10-22 11:53:37
【问题描述】:
我有两个独立的自制应用程序需要相互通信。一个是前端应用程序(实际上是asp.net),另一个是会计应用程序的后端接口。后端接口不是专门为此前端创建的 - 它是许多其他应用程序用来与我们的产品集成的通用接口。
为了方便用户,我们希望在前端应用程序中提供 Windows 身份验证。然而,这意味着我们需要将凭据传递给必须检查它们的后端应用程序。
我们不希望将我们的前端设置为后端的“受信任”应用程序,它可以将自己验证为任何用户。如果前端被黑客入侵,那么它也会危及后端系统。
据我了解,使用 Windows 身份验证的一种方法是 Kerberos 委派。但是,这需要为要被委派的用户和进行委派的机器(带有我们前端的服务器)显式启用。默认情况下,这些选项在 Active Directory 中是禁用的,我怀疑许多系统管理员会保留为所有用户启用这些选项。
另外,我不确定这是否是 Kerberos 委派的目的。我不需要我们的前端来模拟正在连接的用户。我只需要证明这个用户已经对我进行了身份验证。
你会怎么做?
【问题讨论】:
-
什么是后端认证?您表示前端是 Windows 集成的(因此是一个 Intranet 应用程序),但后端应用程序也是 WIA 吗?
-
Kerberos 是为此 - 例如,我们 LAN 上的用户连接到网络服务器,该网络服务器又连接到 SQL Server 使用用户凭据。这允许我们根据用户拥有每个表/字段的权限。这里的困难在于,两个系统都需要了解 Kerberos 委托——获取各种令牌的网站和根据相同权限验证它们的后端。我不相信这会直接实现,但您可以在 UI 和后端之间设置委托感知代理。
标签: kerberos delegation