在 AD FS 2019 中将第三方身份验证提供程序配置为主要身份验证

组织正在经历试图通过发送基于密码的身份验证请求来暴力破解、破坏或以其他方式锁定用户帐户的攻击。 为了帮助保护组织免受损害,AD FS 引入了 Extranet“智能”锁定和基于 IP 地址的阻止等功能。

但是,这些缓解措施是被动的。 若要主动降低这些攻击的严重性,可以使用 AD FS 的在收集密码之前提示用户输入其他因素的功能。

例如,AD FS 2016 引入了 Microsoft Entra 多重身份验证作为主要身份验证,因此来自 Authenticator 应用的 OTP 代码可以用作第一因素。 从 AD FS 2019 开始,你可以将外部身份验证提供程序配置为要主要身份验证因素。

这可实现两种主要方案:

方案 1:保护密码

通过首先提示用户输入额外的外部因素,保护基于密码的登录免受暴力攻击和锁定的侵害。 仅当外部身份验证成功完成时,才会看到密码提示。 这消除了攻击者一直试图破坏或禁用帐户的便捷方式。

此方案由两个组件组成:

  • 提示用户进行 Microsoft Entra 多重身份验证(从 AD FS 2016 开始可用)或将外部身份验证因素作为主要身份验证
  • 用户名和密码,作为 AD FS 中的附加身份验证

方案 2:免密码

在 AD FS 中通过完全不使用密码的方法完成强大的多重身份验证,完全消除密码

  • 使用 Authenticator 应用的 Microsoft Entra 多重身份验证
  • Windows 10 Hello 企业版
  • 证书身份验证
  • 外部身份验证提供程序

概念

主要身份验证的真正含义是,它是系统在附加因素之前首先提示用户输入的因素。 以前,AD FS 中唯一可用的主要方法是 Active Directory 或 Microsoft Entra 多重身份验证或其他 LDAP 身份验证存储的内置方法。 外部方法可以配置为“附加”身份验证,在主要身份验证成功完成后进行。

在 AD FS 2019 中,外部身份验证作为主要功能意味着在 AD FS 场上注册的任何外部身份验证提供程序(使用 Register-AdfsAuthenticationProvider)都可用于主要身份验证和“附加”身份验证。 它们可以以与内置提供程序相同的方式启用,例如供 Intranet 和/或 Extranet 使用的表单身份验证和证书身份验证。

authentication

一旦为 Extranet 和/或 Intranet 启用外部提供程序,它就可供用户使用。 如果启用了多种方法,用户会看到一个选择页面,可以在其中选择一种主要方法,就像在进行附加身份验证一样。

必备条件

在将外部身份验证提供程序配置为主要身份验证之前,请确保满足以下先决条件。

  • AD FS 场行为级别 (FBL) 已提高到“4”(此值转换为 AD FS 2019)。
    • 这是新 AD FS 2019 场的默认 FBL 值。
    • 对于基于 Windows Server 2012 R2 或 2016 的 AD FS 场,可以使用 PowerShell cmdlet Invoke-AdfsFarmBehaviorLevelRaise 来提高 FBL。 有关如何升级 AD FS 场的更多信息,请参阅 SQL 场或 WID 场的场升级文章
    • 可以使用 cmdlet Get-AdfsFarmInformation 检查 FBL 值。
  • AD FS 2019 场配置为使用新的 2019“分页”面向用户页面。
    • 这是新 AD FS 2019 场的默认行为。
    • 对于从 Windows Server 2012 R2 或 2016 升级的 AD FS 场,当外部身份验证作为主要身份验证(本文档中描述的功能)启用时,分页流将自动启用,如本文下一节所述。

启用外部身份验证方法作为主要身份验证方法

验证先决条件后,可通过两种方法将 AD FS 的附加身份验证提供程序配置为主要身份验证:PowerShell 或 AD FS 管理控制台。

使用 PowerShell

PS C:\> Set-AdfsGlobalAuthenticationPolicy -AllowAdditionalAuthenticationAsPrimary $true

在启用或禁用附加身份验证作为主要身份验证后,必须重启 AD FS 服务。

使用 AD FS 管理控制台

在 AD FS 管理控制台中,在“服务”->“身份验证方法”下的“主要身份验证方法”下,选择“编辑”

选中“允许附加身份验证提供程序作为主要身份验证”复选框。

在启用或禁用附加身份验证作为主要身份验证后,必须重启 AD FS 服务。

启用用户名和密码作为附加身份验证

若要完成“保护密码”方案,请使用 PowerShell 或 AD FS 管理控制台启用用户名和密码作为附加身份验证。 这两种方法都提供了示例。

使用 PowerShell 启用用户名和密码作为附加身份验证

PS C:\> $providers = (Get-AdfsGlobalAuthenticationPolicy).AdditionalAuthenticationProvider

PS C:\>$providers = $providers + "FormsAuthentication"

PS C:\>Set-AdfsGlobalAuthenticationPolicy -AdditionalAuthenticationProvider $providers

使用 AD FS 管理控制台启用用户名和密码作为附加身份验证

在 AD FS 管理控制台中,在“服务”->“身份验证方法”下的“附加身份验证方法”下,选择“编辑”

选中“表单身份验证”复选框以启用用户名和密码作为附加身份验证。