在ASP.NET和Delphi ISAPI应用程序之间单点登录

时间:2012-11-16 15:21:46

标签: asp.net delphi authentication single-sign-on isapi

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

方案的参与者:

  • UI asp.net应用程序 - 它确实调用了WS应用程序
  • BI asp.net应用程序
  • WS isapi模块,包含用Delphi编写的soap服务。 (可以与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摘要或基本身份验证。我要感谢任何有关如何使这项工作的信息和建议。

1 个答案:

答案 0 :(得分:0)

  

但是,我不知道如何传递(并重述)用户身份   (凭证?)没有WS模块的一面。

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

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

如果此单点登录示例可以应用于您的ISAPI应用程序,则应该可以将验证Cookie从ASP.NET传递到ISAPI端。

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