ADFS 2.0 IDP启动的SSO

时间:2013-04-26 20:13:56

标签: asp.net single-sign-on adfs2.0 saml-2.0 ws-federation

我正在尝试使用ADFS 2.0作为我的RP STS和SAML 2.0身份提供程序为IdentityProvider启动的SSO设置测试配置。这是我的设置:

身份提供商 - 使用ComponentSpace SAML v2.0 .NET插件的SAML 2.0令牌发布网站。

RP STS - 与我的asp.net应用程序具有RP信任关系的ADFS 2.0实例。

RP应用程序 - ASP.NET Web应用程序(WIF),带有对ADFS 2.0 STS的STS引用。

所以会发生什么情况是用户登录到身份提供商网站并进行身份验证。然后他们被给予RP STS的链接。这个链接(据我所知)应该使用RelayState告诉RP STS用户需要转发到哪个应用程序。我知道我需要在ADFS和我的IP门户网站之间建立某种信任,但我不知道那可能是什么。我的问题是我找不到任何好的资源来说明如何做到这一点。我发现的大多数假设ADFS也是身份提供者,并配置为SAML 2.0端点。我正在尝试做什么不可能,或者我只是找不到合适的资源?

谢谢!

2 个答案:

答案 0 :(得分:1)

您需要在指向您的身份提供商的ADFS上设置声明提供程序信任。在您的身份提供程序上,将RP信任设置回ADFS。

ASP.NET Web应用程序也需要使用ADFS作为STS。

并且声明需要设置为通过。

参考:ADFS 2.0 By Example - Part1: ADFS as IP-STS and R-STS

<强>更新

在IP方面,这是他们的问题。在您这边,手动配置信任。

参考:ADFS : SAML configuration parameters

这些问题与输入参数直接相关。

您需要导出ADFS令牌签名密钥(无需导出私钥)并将其发送给它们。他们需要向您发送证书。手动设置信任后,单击证书选项卡并导入其证书。

答案 1 :(得分:0)

几个月前我曾问过这个问题:

  1. 我们创建了一个测试站点,我们使用表单身份验证技术对任何用户进行身份验证,它需要一个身份验证令牌来授权应用程序中的任何用户。
  2. 因此,要创建此令牌,我们必须与身份提供商(IP)进行通信,以获取经过身份验证的用户详细信息。
  3. 为了与IP服务器通信,我们使用SAML协议发送和接收请求和响应。
  4. IP已经向我们提供了发送和接收SAML数据包所需的终端详细信息和证书。
  5. 我们还发送了我们的终点,证书和声明规则,以便他们可以将我们的测试站点配置为其ADFS服务器作为依赖方。
  6. 由于这一切,我们能够以SAML请求的形式将我们网站上的匿名访问重定向到他们的ADFS服务器。
  7. 他们也可以处理它并向我们发送回复,其中包含姓名,用户名,电子邮件等用户的所有详细信息。
  8. 我们使用第三方.dll生成并处理SAML请求,名称为:ComponentSpace(http://www.componentspace.com/)。