【问题标题】:ADFS 3.0 MFA with RADIUS authentication as second factor (authentication provider for RADIUS)?ADFS 3.0 MFA 将 RADIUS 身份验证作为第二个因素(RADIUS 的身份验证提供程序)?
【发布时间】:2016-05-17 06:44:50
【问题描述】:

请耐心等待我解释这个场景的意义。我们现有的远程访问基础架构使用 RADIUS 进行 2FA - LDAP (AD) 和第 3 方 TOTP 提供程序。 TOTP 提供者可以是 RSA、Yubikey、Google、Azure 等 - RADIUS 服务器已经配置为允许多个可能的 TOTP 提供者作为第二个身份验证因素。

现在我们想为我们的一些服务提供商实施 ADFS,因为它具有强大的授权声明规则;但我们希望拥有第二个身份验证因素的安全性,以及我们目前在 RADIUS 设置中拥有的灵活性。与其为 ADFS MFA 设置相同的 TOTP 提供程序,这将是多余的,因为它已经在 RADIUS 中配置,我们认为可以使用 RADIUS 身份验证的结果作为 ADFS 中身份验证的第二个因素。除此之外,出于明显的安全原因,我们希望在我们的网络中有一个单一的入口点,因此我们不能在外围同时拥有 ADFS 和 RADIUS。我们当然希望维护基于 SAML 的 SSO,因此不能单独依赖 RADIUS。我想明确表示我们不想替换 RADIUS,因为已经有太多系统依赖于它;我们想要的是使用 ADFS MFA 的现有功能。

我们目前在 F5 APM SAML-IdP 上设置了此场景,因此这并不是什么新鲜事。我只想知道这对于 ADFS 是否可行,以及即使考虑替换当前的 F5 设置,实施起来会有多困难。如果 F5 APM 可以做到;那么也许ADFS也可以?好吧,至少这是我的推理。

我查看了可能的选项,发现有必要创建一个自定义身份验证提供程序,如以下链接所述:

https://blogs.technet.microsoft.com/cloudpfe/2014/02/01/how-to-create-a-custom-authentication-provider-for-active-directory-federation-services-on-windows-server-2012-r2-part-2/

该指令足够详细,可以实现此进行测试;但我发现它在很大程度上取决于身份验证的第二个因素的实际来源。我找到了使用 Google Authenticator 和 Yubikey 实现此功能的明确说明(除了易于支持的 MFA 提供程序);但我找不到有关为 RADIUS 创建身份验证提供程序的说明。

这甚至可能吗?谁能指出我正确的方向?

【问题讨论】:

    标签: c# .net authentication adfs radius


    【解决方案1】:

    您应该可以这样做。根据你提到的一些笔记

    • 由于您提到您有多个 TOTP 提供程序,因此您需要 ADFS 中的适配器来请求 TOTP 提供程序
    • 拥有 TOTP 提供程序后,您可以为此控制输入表单。这可以在您可以通过 Java Script 控制的 UX 编辑字段中进行一般处理
    • 一旦您有了提供者 ID 和 OTP,我假设您可以通过一些 RADIUS API 调用它来执行验证并返回结果。

    希望对您有所帮助。

    谢谢 //山姆(@MrADFS)

    【讨论】:

    • 嗨塞缪尔,感谢您的回复。您实际上概述了我想在描述中解释的内容-感谢您对其进行总结。不过,在您的第三个要点(这是我的实际问题)中,这个问题仍然存在。由于 RADIUS 是一个开放的标准实现;我还假设有一个 API,您可以直接插入身份验证提供程序以将身份验证的两个因素传递给 RADIUS 服务器 - 但我不知道这是什么或在哪里。
    • 每个 RADIUS 平台供应商可能有不同的 API 实现。你应该看看你的供应商是否支持这个。
    • 嗨 Samuel,作为一个开放标准的好处是它不应该有不同的实现;至少在核心组件上是如何运作的。所有实施 RADIUS 的供应商都应符合 RFC 2865(66);或者他们的产品不会被称为 RADIUS。无论如何,我会看看我是否可以在 .NET 中实现一个 RADIUS 客户端 - 虽然我真的不想阅读 RFC:/ 如果我有任何运气,我会回来报告。
    【解决方案2】:

    对于任何想知道的人;我可以通过创建自定义身份验证提供程序来实现这一点,如我在问题中发布的 technet 博客中所述:

    https://blogs.technet.microsoft.com/cloudpfe/2014/02/01/how-to-create-a-custom-authentication-provider-for-active-directory-federation-services-on-windows-server-2012-r2-part-2/
    

    我在此链接中使用了一个 .NET 类来为提供者实现一个 RADIUS 客户端,因为我找不到任何其他 .NET API:

    http://nradius.nw-network.com/web/
    

    无论如何,它工作得很好!太糟糕了,我不知道是谁开发了该课程,但我确实发送了匿名感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 2019-09-27
      • 2017-12-25
      • 2015-10-05
      • 2021-02-28
      相关资源
      最近更新 更多