.net - 基于联合声明的身份验证和单点登录

标签 .net security azure wif

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

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

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

干杯


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

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

最佳答案

您在此描述的是一个与 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 中进行身份验证,并且他的声明可在应用程序中查看。

希望这有帮助。

桑德里诺

关于.net - 基于联合声明的身份验证和单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918589/

相关文章:

azure - SAML 和 MSAL 之间的区别?哪一个应该用VB代码设置?

c# - .NET 在运行时之前创建一个大小未知的数组(或更好的数组切片方式)

c# - Entity Framework 将项目添加到 ICollection 错误

.net - 在 DotNetNuke 中获取当前用户

c# - 标记扩展、构造函数和智能感知

java - 防止表单生成的 SQL 注入(inject) SQL - NO PreparedStmts

java - URL 标识符的加密算法

php - 在 php 和站点安全中设置 cookie

Azure将免费提供5GB带宽且没有数据库?

Azure Active Directory Multi-Tenancy : User doesn't exist in tenant