【问题标题】:What's the best approach to SSO with internal AD users and external users?对内部 AD 用户和外部用户进行 SSO 的最佳方法是什么?
【发布时间】:2015-02-13 23:24:55
【问题描述】:

我们有一个 Web 应用程序 (asp.net mvc 3),它应该支持通过 AD 进行内部使用的 SSO。我们还有一个庞大的外部用户社区,我们希望为我们的所有 Web 应用程序提供 SSO。例如:external_user1 使用同一个登录名访问 webappA、webappB 和 webappC。此外,domain\user1 可以访问所有三个 web 应用程序。我们计划使用 WIF 和 ADFS 2.0。

我们不希望所有外部用户都拥有 AD 帐户,因此,过去我们可能尝试过使用 ADFS 1.x 和 ADAM 的解决方案。但是,我们使用的是 Windows Server 2008 R2,并且 ADFS 2.0 无法使用 AD LDS(ADAM 的继任者)对用户进行身份验证。

什么是 SSO 方法(使用 Microsoft 产品)?

【问题讨论】:

  • 您使用的是 ASP.NET 身份验证提供程序吗?

标签: single-sign-on wif adfs2.0


【解决方案1】:

关键问题是您是否可以利用 external_user1 帐户存储。如果可以,那么您只需要在您的 ADFS 和他们的 STS 之间添加另一个信任关系就可以了!这种方法是理想的,因为这样您就不再需要维护 external_user1 了。本质上是这样的:

如果您无法利用其他用户帐户,那么您仍然可以使用 ADFS v1.1 并信任自己:

【讨论】:

  • 我们的外部用户就像公共互联网用户,不属于一个共同的组织,因此没有共同的帐户存储或 sts。我们也会受到 ADFS 2.0 的约束,因为我们的服务器是 2008 r2。同样,ADAM 已退出,因为 AD LDS 不能用作 ADFS 2.0 的 IP
  • 接下来的两个问题是:你能像 Frode 建议的那样使用外部身份吗(例如 LiveID、Facebook 等)。为什么不在 Windows Server 2008 上安装 ADFS 1.1?事实上,ADFS v1.1 已经包含在 Windows Server 2008 中。
【解决方案2】:

您能否创建一个允许针对 ADAM 进行身份验证并且与 ADFS v2.0 具有信任关系的自定义 STS?

【讨论】:

  • ADAM 是否需要 STS 才能连接到 ADFS?我以为最新的 ADAM 设置可以直接连接。
  • AFAIK,ADFS 只能直接使用 ADAM (AD LDS) 作为属性存储进行授权。无法直接连接到 AD LDS 进行身份验证。您需要自定义 STS 来执行此操作 - 与 StarterSTS 使用基于 ASP 角色的 SQL DB 进行身份验证的方式相同。
  • 这是第 1 号问题。 ADFS 的困惑 :-)
【解决方案3】:

除了 Eugenios 的回答之外,您还应该调查 Microsoft Azure ACS。这将为您提供 Google、Facebook、Yahoo 和其他 OpenId 提供商的联合。

您的身份验证链将如下所示:

您的应用程序 -> ADFS -> 活动目录 或者 您的应用程序 -> ADFS -> ACS -> Google。

在本站搜索ADFS标签,你会发现很多相关的帖子。

【讨论】:

    【解决方案4】:

    虽然这个问题是针对 ADFS 2.0 的,其中放弃了对 LDS 作为身份提供者的支持,但看起来这将在 ADFS 4.0 中重新引入

    https://technet.microsoft.com/en-us/library/dn823754.aspx

    https://jorgequestforknowledge.wordpress.com/2014/10/20/configuring-a-new-identity-store-as-a-claims-provider-in-adfs/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2020-08-02
      相关资源
      最近更新 更多