2

我需要在三个 ASP.NET 应用程序和一个 Delphi ISAPI 应用程序之间开发“单点登录”身份验证。

情景参与者:

  • UI asp.net 应用程序 - 它确实调用 WS 应用程序
  • BI asp.net 应用程序
  • WS isapi 模块,其中包含用 Delphi 编写的肥皂服务。(可以与 LDAP 对话)

附加信息/限制:

  • WS 应用程序可以与 LDAP 对话,但可以修改/扩展。
  • WS 应用程序基于用户身份执行(或不执行)业务逻辑。
  • ADAM 是必须的(?),因为每个应用程序实例都需要单独的用户容器(某种多租户解决方案)。
  • 表单身份验证要求很高。

我目前的想法是使用 AD 或 ADAM 作为用户容器。使用表单身份验证并在 ASP.NET 应用程序之间共享成员资格提供程序 (http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx)。模拟两个 ASP.NET 应用程序 (http://stackoverflow.com/questions/1066275/impersonate-using-forms-authentication),然后从 UI 应用程序调用 WS。

但是,我不知道如何在 WS 模块一侧传递(和接收)用户身份(凭据?)。IIS 能否以某种方式(和 ADAM?)来处理这件事,他们可能会使用 HTTP 摘要或基本身份验证。我会感谢任何信息和建议如何使这项工作。

4

1 回答 1

0

但是,我不知道如何在 WS 模块的一侧传递(和接收)用户身份(凭据?)。

根据http://www.mombu.com/microsoft/microsoft/t-iis-60-single-sign-on-isapi-filter-14103802-last.html在平台 SDK 中有一个带有源代码的 AuthFilter 示例。

该解决方案似乎是围绕身份验证 Cookie构建的,可以在 IIS 服务器之间传递。

如果这个单点登录示例可以应用于您的 ISAPI 应用程序,那么应该可以将 ASP.NET 的身份验证 Cookie 也传递到 ISAPI 端。

(我不是这方面的专家,这个建议是基于在网上找到的第一个研究结果。)

于 2012-11-16T16:34:10.773 回答