WIF单点登录和表单身份验证

时间:2011-12-13 21:50:43

标签: forms authentication single-sign-on wif

我有基于表单身份验证的现有应用程序。我想在我的应用程序中启用可选的单点登录。我想在其他登录页面(login_sso.aspx)上创建,它将使用STS对用户进行身份验证,如果用户成功通过身份验证,那么它将创建一个表单身份验证cookie,使应用程序的其余部分在不做任何更改的情况下工作。在我的观众中,我将使用login_sso.aspx页面

<audienceUris>
<add value="https://www.myapp.com/login_sso.aspx" />
</audienceUris>

为此我必须保持身份验证模式=“无”,但然后我的原始登录页面将无法工作,如果我保持身份验证模式=“表单”,那么我的login_sso.aspx将不会重定向到STS。仅当我将身份验证模式设置为“无”时才有效。

这有什么工作吗?我可以保持我的身份验证模式=“表单”,仍然使用STS(仅适用于login_sso.aspx)

1 个答案:

答案 0 :(得分:2)

有很多解决方案。有一点需要考虑的是“可选SSO”的含义。如果你的意思是你的应用程序现在将接受来自第三方提供商(客户的STS或LiveID或Google ID)的身份,以及您自己的用户名/密码;然后最干净,最优雅的方法是:

  1. 声明启用您的应用(如果您今天使用表单AuthN将会 可能会对您的代码产生零影响)
  2. 介绍一个既是“联盟”的STS(您自己的) 提供商“(意味着它将成为您的应用和所有应用之间的桥梁 第三方身份提示者);和身份提供者本身 (正如您现在所做的那样对您的用户进行身份验证)。
  3. 1比较容易。对于#2,您需要获得STS。根据您托管的位置,您可以使用ADFS(v2)等现成的STS,或者您可能需要自定义STS(例如CodePlex上的IdentityServer)

    不太优雅(且未来证明不足)的解决方案可能需要对WIF进行一些编程操作(如this post中所述)。

    顺便说一句,“受众群体URI”不是您应用的网址。它旨在识别STS发布的令牌的消费者。

相关问题