我需要在三个 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 摘要或基本身份验证。我会感谢任何信息和建议如何使这项工作。