【问题标题】:Confused about STS and WIF对 STS 和 WIF 感到困惑
【发布时间】:2013-06-11 21:43:23
【问题描述】:

我正在构建 3 个新网站,并希望在这 3 个不同的域中使用 WIF4.5 进行 SSO。我已经阅读了大量关于 WIF 的资料,虽然我了解 WIF 的原理和目的,但我仍然对它在现实生活中的工作方式感到非常困惑,请帮助我理解以下问题,非常感谢。

我的所有网站都将使用共享托管服务托管。

  1. 大家都说没必要自己建STS,但如果是这样的话,我在哪里可以找到可以用来登录我的用户的外部服务,新用户的普通用户注册界面呢?以及我现有的用户呢?

  2. 如果我只需要构建基于声明的 Web 应用程序,那么在真实的生产环境中从哪里获取用户身份?我必须向他们付款还是需要他们通过我的网站才能批准?

  3. 如果我使用 STS,不再允许用户在我的网站上注册,这是否正确?

  4. 如果我希望我的所有网站成为基于声明的网站,我是否需要启用 SSL 并购买 X507 证书?

  5. 我想要一个共享用户数据库来存储我们所有的新旧用户,这是否意味着我必须构建自己的 STS?

  6. 构建我自己的 STS 究竟需要什么,我可以选择我的一个网站作为我自己网站的 STS 提供商吗?

  7. 构建 STS 需要什么成本?像 SSL、证书、其他东西?

  8. 如果我的网站是基于声明的,我可以启用像 facebook/Google/Yahoo 这样的社交登录吗?

谢谢你们。

【问题讨论】:

    标签: single-sign-on wif adfs


    【解决方案1】:
    1. 您绝对可以编写自己的 sts。
    2. 您可以允许您的用户在您的 sts 中注册或与外部身份提供商 (google/facebook) 联合
    3. 不,sts 只是一个 asp.net 网络应用程序,用户可以在那里注册。
    4. 不,尽管在涉及用户名/密码时建议使用 ssl。
    5. 不,您可以使用现有的 sts,例如 IdentityServer,它允许您针对自己的数据库使用自定义 MembershipProvider http://thinktecture.github.io/
    6. 是的。 http://netpl.blogspot.com/2011/08/quest-for-customizing-adfs-sign-in-web.html
    7. 可以使用 portecle 或 makecert 等免费工具创建用于令牌签名的 X509 证书
    8. 是的。

    【讨论】:

    • 好的,再次感谢 Wiktor,非常感谢。 #2 google 和 facebook 是否提供任何我可以连接的 STS 服务? #7 如果我理解正确的话,thinktecture 是一个 STS 身份提供者,你知道其他的吗,比如 microsoft 或者我应该在 google 中搜索什么?
    • #2 不,他们不提供 stses。相反,它们提供 oauth2 端点,oauth2 是另一种 sso 协议。如果您创建一个新的 asp.net 4.5 网络应用程序,它将支持 google/facebook 开箱即用。 #7 adfs2 是 microsoft 的免费 sts,但它仅支持 Active Directory 后台存储。但是编写自己的 sts 真的很容易。
    • 你的博客非常好,就在我的书签里,:-)
    • 好的,顺便说一句,您网站上的教程是针对 WIF4.5 或更早版本的吗?
    • 我不明白为什么互联网上的每个人都说绝对没有必要编写自己的 STS,而几乎没有任何身份提供者可以使用。我想我会按照你的建议去做,要么写我自己的 STS,要么使用 thinktecture。谢谢!!!! :D
    【解决方案2】:

    Microsoft 拥有支持 Windows Live ID、Google、Yahoo! 和 Facebook 登录的 Access Control Service (ACS)。除非您需要选择让用户在您的网站上注册帐户,否则这可能是一个不错的选择。

    【讨论】:

    • 感谢您的帮助,我也注意到了 ACS,但是要使用它,您需要购买许可证才能在 WIF4.5 中提供命名空间和命名空间密钥。我也很困惑 AD 和 ACS 如何在像我这样的案例中提供帮助,3 个公共网站具有一些受保护的内容和功能。我认为 AD 和 ACS 主要用于组织的 Intranet 或 Extranet,它们不会暴露于“外部”世界。
    • 我以为 ACS 是免费的? AD和ACS是不同的野兽。 AD 位于您的组织内部。它是一个凭证存储,ACS 是 Azure 的一部分,因此旨在成为外部世界的一部分。它不是凭证存储 - 这就是为什么您必须在其他地方进行身份验证的原因,例如脸书。
    【解决方案3】:

    如果您想要 (1) 作为 STS 的免费解决方案或 (2) 想要拥有自己的 Id 存储,Thinktecture 的身份服务器是您的最佳选择。

    我已经写了一些关于如何做到这一点的教程。

    http://claudioasanchez.blogspot.com/2011/09/setting-up-thinktectures-identity.html

    【讨论】:

    • 谢谢伙计,我从 Thinktecture 运行 IP 没有问题,问题是在 V2.0 中它们只包含 cshtml 标记文件而没有实际的“代码背后”,所有内容都打包成 int dll。所以学习起来有点难。
    猜你喜欢
    • 2021-11-28
    • 1970-01-01
    • 2013-03-29
    • 2014-11-02
    • 1970-01-01
    • 2014-03-18
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多