如何在不使用WIF的情况下使用SAML 2.0实现SSO?

时间:2013-07-05 12:17:02

标签: c# asp.net single-sign-on asp.net-4.0 saml-2.0

在屏幕后面

  1. 我们在不同的域名中有两个网站应用程序(网站1和网站2 [SAML服务])。
  2. 我们需要使用SAML 2.0
  3. 进行SSO目的的通信
  4. WebSite 1构建一个签名SAML断言请求(使用 .PFX证书)和POST到另一个域的WebSite 2( SAML服务
  5. 网站2接受此SAML请求并要求提供凭据。验证后,网站2将使用SAML响应重定向到网站1(使用Page [AssertionConsumerServiceURL])。
  6. 问题:

    1. 现在在网站1 (消费网页[ AssertionConsumerServiceURL ])中如何处理 SAML响应以便进行SSO?
    2. 如果用户想要从网站1 注销,该怎么做?对于注销目的,任何其他SAML请求都需要发布到网站2?
    3. 如果用户从网站2注销那么网站1会发生什么?
    4. 网站1(颁发者)是基于ASP.Net的应用程序,而网站2(目标服务URL )是基于Java的应用程序。
    5. 假设

      1. 根据Google SSO的关注点,当您登录Google帐户时,无需单独登录ORKUT,GMAil。 Google 1这是SSO e.tc。
      2. 的示例

        注意:

        1. 网站1是Asp.Net应用程序。
        2. 网站2是基于Java的SAML服务。
        3. 我主要担心的是如何在ASP.NET应用程序中使用SAML响应。我不是SAML 2.0(SSO)的专家。所以请指导我作为新手。我需要您的意见以澄清我的知识和代码片段如何使用网站1处理SSO目的的SAML响应?

1 个答案:

答案 0 :(得分:0)

  1. 解析,验证签名。使用断言发出本地cookie以持久化用户会话(您可以使用Forms身份验证和表单cookie或发出SessionAuthenticationModule cookie)

  2. 是的,您手动创建SAML请求以退出并将其发布到身份提供商。

  3. 身份提供者应该将签名请求“广播”到所有经过身份验证的应用程序。这有不同的实现,但从Website1的角度来看,这意味着将从浏览器发出一个请求,告诉应用程序关闭用户。从技术上讲,应用程序只删除其本地cookie。

  4. 无关紧要。