这是太多信息的典型例子=太多混乱。 我有一个ASP.NET Web应用程序,它使用通常的POST表单身份验证,并希望实现SSO。 由于我们是微软商店,我们将使用ADFS 2.0。为了实现SSO,我理解我还需要有WIF来处理SAML请求? 我是否在与ADFS相同的服务器下安装WIF?
我仍然想重新指导失败的SSO请求或非SSO请求以使用该表单,我该如何处理?
有人可以描述一下这个流程吗?
谢谢!
答案 0 :(得分:2)
ADFS支持两种协议进行身份验证。 1)WS-Federation协议 2)Web SSO SAML协议
* 在Ws-Federation场景中 * 对于Application和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
答案 1 :(得分:1)
所以你在某些第三方STS上使用SAML?
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