Windows Identity Foundation - 以编程方式登录RP以进行SSO

时间:2012-03-23 09:48:46

标签: visual-studio-2010 single-sign-on wif

我一直在尝试将WIF弄清楚一段时间,并且可以强制用户使用passiveRedirectEnabled通过我的STS登录,并限制我的网站访问已知用户。

我现在想在我的RP上使用我自己的登录页面,并以编程方式在我所有信任同一STS的网站上签署用户。

用户应该可以完全查看我的网站,但可以选择通过我的网站导航中的链接登录。

我现在已经看了几个小时,找不到一个简单的工作答案来实现这个目标。

是否还有WSFederationAuthenticationModule.FederatedSignOut符号用于登录?

如果可能的话,我将如何做到这一点。

问候。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

听起来您只想让用户登录一次并对多个不同的依赖方网站进行身份验证。因此,假设您有一个STS,使用RP1,RP2,RP3建立多个信任关系。

  1. 用户浏览到RP1
  2. RP1将用户重定向到STS
  3. 用户在STS建立会话,用户现在拥有STS会话cookie
    • 请注意,这是需要用户交互式身份验证的唯一步骤,其余步骤是自动重定向
  4. STS重定向回RP1,RP1建立会话,用户现在也有RP1会话cookie
  5. 通过对STS进行身份验证后,您的用户已经对RP2和RP3进行了有效身份验证。这是发生的事情:

    1. 用户浏览到RP2
    2. RP2重定向到STS
    3. STS发现用户已经拥有STS会话cookie,因此立即为RP2发出令牌,并将用户重定向到那里
    4. RP2接受来自STS的令牌,并建立会话,用户现在拥有RP2会话cookie
    5. 这是一种非常常见的机制,它是WIF支持的核心方案。例如,在您使用实时ID登录hotmail.com之后,浏览manage.dev.live.com时无需重新进行身份验证。这是因为您有一个liveID会话cookie,来自上面的第3步。

      这是你要找的吗?如果是这样,我可以更新详细信息。