联合声明的身份验证和单点登录

时间:2012-03-29 03:09:20

标签: .net security azure wif

我需要在浏览器中通过单点登录将凭据从一个Microsoft .NET Web应用程序传递到另一个。我希望利用Windows Azure(ACS)作为我的安全令牌服务以及Facebook / Open Id作为发布机构,仅用于身份验证。

有谁知道我如何在不同的.NET Web应用程序中实现“基于联合声明的身份验证和单点登录”?

请注意,两个不同的Web应用程序托管在不同的数据中心(不是云端),凭据需要通过浏览器流动,这是否可以通过声明和cookie实现(如果是这样)?

干杯


*更新 例如用户通过ACS登录到应用程序A,然后单击应用程序A上的按钮,将其重定向到应用程序B(合作伙伴/第三方站点)

仅供参考 - 我认为我无法更改应用程序B(合作伙伴网站),应用程序A是...

1 个答案:

答案 0 :(得分:2)

您在此处描述的是一种与Windows Azure访问控制服务完美配合的混合方案。如果您的应用程序是内部部署或云端,则无关紧要。基本上您的应用程序只需要使用ACS作为身份提供者(右键单击您的项目,添加STS参考)。完成后,可以执行以下操作:

  1. 用户浏览application1.com
  2. 需要身份验证。 application1.com重定向到ACS'登录页面' (您可以选择身份提供者)或列出所有可用的身份提供者。
  3. 用户选择使用Windows Live
  4. 用户被重定向到login.live.com,在那里他可以输入他的电子邮件地址+密码。他选择保存密码并保持联系。
  5. 用户将某些声明重定向到ACS。 ACS再次重定向,并对application1.com提出了一些声明。
  6. 用户在application1.com中经过身份验证,他的声明可在应用程序中找到。
  7. 用户连接到application2.com
  8. 需要身份验证。 application2.com重定向到ACS'登录页面' (您可以选择身份提供者)或列出所有可用的身份提供者。
  9. 用户选择使用Windows Live
  10. 用户之前已在Windows Live中进行过身份验证!并且login.live.com会立即将他重定向到ACS并提出一些声明
  11. ACS再次重定向,并对application2.com提出了一些声明
  12. 用户在application2.com中经过身份验证,他的声明可在应用程序中找到。
  13. 希望这有帮助。

    Sandrino

相关问题