使用WIF创建自定义STS-IP,为什么不创建

时间:2010-07-15 12:38:50

标签: wcf wcf-data-services saml wif

我需要为我们的Web应用程序和服务实现STS-IP服务器。服务器需要针对以下情况发出SAML令牌:

  1. 业务合作伙伴提交其SAML令牌,该令牌转换为SAML令牌,其中包含我们的应用程序所需的声明。此令牌用于访问我们的Web应用程序和服务。
  2. 我们面向公众的应用程序需要让用户登录(通过表单身份验证),然后使用SAML令牌访问我们的Web应用程序和服务。
  3. 我们的客户(没有STS信任)需要通过我们的STS-IP服务器进行身份验证,获取SAML令牌,并使用该令牌访问我们的WCF服务。
  4. 在所有3个场景中,我们需要对我们的应用程序和服务使用的SAML令牌进行自定义声明。我们的想法是,一旦我们识别出用户,我们就会在后端系统中查找他们的授权并附上索赔。

    在这些情况下,您可以假设后端身份验证存储是一个自定义实现,其身份验证存储在Active Directory中,授权存储在数据库中。

    所以我的想法是,我们需要使用Windows Identity Framework之类的东西创建自定义STS-IP服务器。但我也一直在读你不应该这样做因为它可能需要一些时间。

    我可以使用现成的STS-IP服务器吗?我见过的所有内容都是一个系统与另一个系统之间的映射(SAML到SAML或AD到SAML)。

    为什么要花费很长时间来构建生产就绪的STS-IP?我很容易使用WIF构建一个,但我想我不明白这样做的风险。

5 个答案:

答案 0 :(得分:1)

就“需要很长时间”而言,显示如何执行此操作的文档非常糟糕。见这里:http://social.msdn.microsoft.com/Forums/en-US/Geneva/thread/257d93be-165e-45a6-a277-fc7ed2286e7d/

无论如何,您只需要查看Microsoft提供的代码示例:Google for Identity Developer Training Kit。这应该可以帮助你开始。

答案 1 :(得分:1)

为什么不考虑使用ADFS?如果用于身份验证的后备存储是AD,则ADFS可能是评估的良好候选者。

答案 2 :(得分:1)

在编写自己的STS之前,您可能需要查看此博客并仔细查看STS中可能需要的功能。仅仅因为你可以自己建造一个,并不总是意味着你应该。

extending adfs to multiple identity and attribute stores

答案 3 :(得分:0)

他们“为什么不”相对简单:为什么要花几周的时间来构建一些可能只处理一个用例的东西,当你可以在一天内放入现成的STS来覆盖各种各样的东西时公司可能拿出来?自己构建它还需要您成为SAML的专家(这可能不是您公司时代的最佳人选)。

退房 - http://www.pingidentity.com/our-solutions/pingfederate.cfm

祝你好运 - 伊恩

答案 4 :(得分:0)

同意@eugenio - 为什么不使用ADFS?

ADFS只能如所讨论的那样对AD进行身份验证,但它可以从AD / LDAP / SQL服务器派生授权属性

ST20的螺母和螺栓可在VS 2010和标识工具包中找到。简单的STS可以快速原型化。

有一些例子可供使用。已经提到了StarterSTS加上SelfSTS

困难的部分是获得担保权,特别是如果这将成为生产系统的一部分。根据“安全史蒂夫”Build your own Directory Federation Service

  

听起来好像我认为它会是一个   同步开发这个系统并拥有   它安全地工作,但实际上在那里   需要深入了解它   保护网络,员工,   这可能是数据   与。。。相互作用。发展很难   安全应用。它很远   更难开发安全的应用程序   其唯一责任是安全   相关。

这就是互联网上所有样本都以粗体显示免责声明的原因:

请勿在制作环境中使用