这是太多信息=太多混乱的经典例子。我有一个 ASP.NET Web 应用程序,它使用通常的 POST 表单身份验证并希望实现 SSO。由于我们是 Microsoft 商店,我们将使用 ADFS 2.0。为了实施 SSO,我知道我还需要 WIF 来处理 SAML 请求?是否将 WIF 安装在与 ADFS 相同的服务器下?
我仍然想重定向失败的 SSO 请求或非 SSO 请求以使用表单,我该如何处理?
有人可以描述一下流程吗?
谢谢!
这是太多信息=太多混乱的经典例子。我有一个 ASP.NET Web 应用程序,它使用通常的 POST 表单身份验证并希望实现 SSO。由于我们是 Microsoft 商店,我们将使用 ADFS 2.0。为了实施 SSO,我知道我还需要 WIF 来处理 SAML 请求?是否将 WIF 安装在与 ADFS 相同的服务器下?
我仍然想重定向失败的 SSO 请求或非 SSO 请求以使用表单,我该如何处理?
有人可以描述一下流程吗?
谢谢!
ADFS 支持两种协议进行身份验证。1) WS-Federation 协议 2) Web SSO SAML 协议
*在 Ws-Federation 场景中* 用于您的应用程序和 ADFS 之间的 SSO(建立信任关系)。
1) Install ADFS & WIF on one server , Create some users in AD.
2) Generate Federation Metadata.xml file in ADFS, save it one place for
future need.
3) Use Windows Azure Access Control Service(ACS) for
simplicity. (It will do all heavy lifting of your authentication
process of token coming from ADFS)
4) Generate Federation
Metadata.xml file in ACS and Import in your ADFS server as relying
party. (give some claims as well)
[http://blogs.msdn.com/b/card/archive/2010/06/25/using-federation-metadata-to-establish-a-relying-party-trust-in-ad-fs-2-0 .aspx?重定向=真][1]
5) Import federation metadata.xml
file from ADFS server to ACS and Add it as Identity provider. (add
claim processing rule)
6) Now in your web Application use WIF
FedUtil Tool and import ACS federation metadata.xml file.
就是这样..你很高兴去..
对于 Web SSO SAML 协议,您必须手动进行编码工作。
用例:
用户将点击您的应用程序。
用户未通过身份验证,因此他将转到 ACS,ACS 会将其重定向到 ADFS 登录页面。
用户输入凭据。ADFS 向 ACS 发出令牌并带有一些声明。ACS 将转换传入的 ADFS 声明并将其提供给您的应用程序。
您的应用程序现在已通过身份验证,因此您可以使用声明并进行授权。
您可以使用 URL 方案来检查此请求应转到您的表单身份验证或 ADFS 身份验证的位置。 例如。:http ://somedomain.com/forms或http://somedomain.com/ADFS
所以你正在使用 SAML 到一些第 3 方 STS?
WIF(开箱即用)不支持 SAML。
有一个 WIF SAML 扩展,但这只是 CTP(社区技术预览)。
WIF 与您的 ASP.NET 应用程序集成。对于 .NET 4 及更低版本,有单独的下载。对于 .NET 4.5,它是集成的。
WIF 只是应用程序中的一组 .NET 类。
您可以使用名为 FedUtil 的工具将 WIF 与您的 ASP.NET 应用程序集成,该工具是 WIF SDK 下载的一部分。(由 VS 中的“添加 STS”调用)。
ADFS 安装会在服务器上安装 WIF,但这与您的应用程序是分开的。
流程是:
.NET 应用程序 --> (WIF) --> (WS-Federation) --> ADFS --> (SAML) --> STS