基于Windows身份基础和WCF的单点登录

基于Windows身份基础和WCF的单点登录,wcf,single-sign-on,wif,saml,Wcf,Single Sign On,Wif,Saml,我们有一个客户,拥有以下现有产品线 Website1(使用存储在SqlDB for Website1中的用户信息进行表单身份验证) WebSite2(使用存储在SqlDB for WebSite2中的用户信息进行表单身份验证) WinApplication1(使用Active Directory对用户进行身份验证) 更多产品将在未来发布 他们希望为所有具有以下功能的产品实现单点登录(SSO)- 用户将访问的产品列表将取决于其角色。 它应该是可配置的。正在具有Fk关系的数据库中定义角色 使用

我们有一个客户,拥有以下现有产品线

  • Website1(使用存储在SqlDB for Website1中的用户信息进行表单身份验证)
  • WebSite2(使用存储在SqlDB for WebSite2中的用户信息进行表单身份验证)
  • WinApplication1(使用Active Directory对用户进行身份验证)
更多产品将在未来发布

他们希望为所有具有以下功能的产品实现单点登录(SSO)-

  • 用户将访问的产品列表将取决于其角色。 它应该是可配置的。正在具有Fk关系的数据库中定义角色 使用用户表
  • SSO服务应灵活适应新产品
  • 应使用SAML来获取令牌
  • WinApplication1具有网站1和网站2的链接。如果用户在WinApplication1中登录 并点击website1/website2的任何链接,用户应该能够访问这些站点而无需 输入他的证件
  • 如果用户在任何产品中登录,则该用户应完全可以访问任何其他产品 他有访问权,无需输入用户名/密码
我们有以下疑问

  • 我们计划使用WCF和WIF实现SSO。以上要求都能满足吗 通过使用WIF
  • 我们希望在各自的产品中保留用户身份验证部分,因为每个产品都有自己的功能 拥有自己的用户商店。或者我们应该有集中的用户存储
  • STS(在WCF中实施)对SSO的责任是什么& 保安

我们从MSDN(,)中阅读了很多关于WIF的内容,但没有找到任何提供一些实际场景的可靠文章/示例。他们中的大多数人都是关于使用本地STS的……可能是因为我运气不好。

我找到了一篇文章,它符合您的大多数要求,并提供了实际的实现示例

本文描述了一种简单的方法,用于从依赖方应用程序的角度在单点登录(SS0)场景中对Windows身份基础进行编程。WIF支持各种基于声明的身份验证场景,但本文将重点介绍使用WIF开发一个应用程序,该应用程序支持SSO,因为使用了包含一些基本声明的SAML 2.0令牌

本文还包括一些关于在广告用户中使用角色的部分说明:

要从Web应用程序在WCF调用中模拟原始调用方,您还需要遵循以下步骤:


更新

IP-STS和FP-STS之间的区别以及如何选择在体系结构中放置STSE的位置。您将了解联合、家庭领域发现以及如何利用WIF扩展性模型来处理多个身份提供者

无论使用何种身份验证技术,只要添加一个STS页面,通用网站都可以通过身份提供程序功能得到增强。 另一个实验室展示了如何使用现有的成员资格存储来验证对自定义STS的调用和寻找索赔值

WIF和WCF


希望能有所帮助。

谢谢Pranav>>C-Sharpcorner文章正在使用本地STS,并展示如何获取索赔信息。我们需要关于如何使用STS的信息,其中RP网站在其自己的数据库中有其用户信息。这应该比使用声明从其他来源(如fb、twitter)检索用户信息更容易,因为您在自己的数据库中有用户信息。我已经添加了新的评论链接。我现在要做的是-我已经创建了一个网站,并在其中配置了默认声明的本地STS。创建了另外两个网站website1和website2,并将FederationMetadata.xml文件从网站复制到webconfig中两个网站的根目录和配置路径。现在,当我运行website1或Website2时,它不调用Website_STS。我做错了什么。请检查SSO设置是否对两个网站和工作都有好处。如果你愿意,我可以附上示例。RP站点中的配置设置-“/>----------