【问题标题】:Using ADFS 2.0 with non-.NET services将 ADFS 2.0 与非 .NET 服务一起使用
【发布时间】:2011-01-11 02:12:11
【问题描述】:
我正在寻找在单点登录下将多个基于 Windows 的 Web 服务捆绑在一起的方法。 Microsoft 的 Windows Identity Framework 和 ADFS 2.0 是完成这项工作的完美工具,但并非我们所有的 Web 服务都是用 .NET 编写的。一个是经典的 ASP,另一个是 PHP。是否有适用于这些平台的现有库,或者我需要从头开始构建它们?
【问题讨论】:
标签:
php
asp-classic
windows-services
wif
adfs
【解决方案1】:
使用 IIS 7.0 管道,您可以编写一个 http 模块来处理托管在 iis 上的所有站点的身份验证。 (包括经典的asp和php)。
见:MSDN article
【解决方案2】:
我能想到的有两种方法:
在您的 Web 服务器中找到一种产品,该产品可以拦截呼叫、将未经身份验证的用户退回到 IdP、解析响应并将数据放入请求的标头中,然后将其传递给您的 ASP/ PHP 应用程序。有许多类型的产品可以做到这一点,例如 Shibboleth SP、Ping Identity 和 OpenSSO。我认为 Centrify DirectControl 和 Quest Single Sign-on可能也提供这种功能。
自己构建一个类似的组件,它可以执行此类操作并利用框架来帮助解析 SAML 和/或 WS-Federation 消息。如果您选择这条路线,请查看 SimpleSAMLphp 和 OIOSAML.NET。
HTH!