ADFS 可以连接到其他 SSO 服务吗?

Ric*_*chC 8 active-directory single-sign-on adfs

我有一个 .net 应用程序,它连接到我的本地 ADFS 服务器(连接到我们的公司 AD 服务器)并且一切正常。我的问题是,我的 ADFS 能否与 Internet 上的其他 SSO 服务(如 Azure AD、AWS、Google 登录、Facebook、Twitter、OpenID 等)建立可信连接,以便我的应用程序可以使用来自多个可信来源的声明,而不是我的激活目录?

Mit*_*tch 10

我已经这样做了。在我们的模型中,我们有三组用户:

  1. 内部用户通过 Active Directory(Kerberos 或 NTLM)针对本地 AD FS 实例进行身份验证。在这个集合中,AD FS 服务器作为 IdP 运行。

  2. 外部用户通过 Active Directory(Kerberos 或 NTLM)针对他们自己的 AD FS 实例和域进行身份验证。在此集合中,AD FS 服务器具有配置到发布 AD FS 服务器的声明提供程序信任。我们的 AD FS 服务器作为 SP-STS 运行,通过转换和验证在其他地方发布的声明,并向我们的应用程序重新发布受信任的令牌。IdP 是另一个域的 AD FS 服务器,我们的 AD FS 服务器配置为依赖方。

  3. 没有企业登录的外部用户。这些用户向小型 .Net STS 进行身份验证,该 STS 在我们的 AD FS 服务器上配置为声明提供者信任。(我们确实也考虑过——而且技术上很简单——为此角色使用 Azure Active Directory B2C,但其他问题阻止了它。)

代币发行如下: 代币发行描述

为了使其对我们的客户透明,我们使用 IP 范围来检测(通过 nginx)并重定向到适当的公司 AD FS - 否则依赖于标准的 AD FS HRD 页面。


mfi*_*nni 5

看起来链接依赖方确实是可能的。这个人写了一系列关于它的帖子,这里是一个。您可以将 ADFS 用作应用程序进行身份验证的“中心”,它会将请求链接回用户身份实际所在的任何服务。

https://cloudidentityblog.com/2013/06/17/why-use-aad-as-idp-via-ad-fs-rp/

我自己没有这样做过,所以我不确定这需要多少工作以及可能存在哪些陷阱。我敢肯定,如果用户居住在多个 IdP 中,您可能会遇到问题。

不要忘记,没有什么可以阻止您编写 .NET 应用程序以在本地利用多个 SSO 提供程序。


rbr*_*ayb 5

是的,它可以。

这些外部 IDP 中的每一个都被添加为 ADFS 中的声明提供程序,在 IDP 端,ADFS 被添加为依赖方。

当您进行身份验证时,ADFS 将显示一个家庭领域发现屏幕,其中列出了所有 IDP。

然后,您可以选择要使用的一种。