在身份验证期间将 "RequireMFA" 信息从 Azure SSO 转发到 OnPrem ADFS

Forward "RequireMFA" Information from Azure SSO to OnPrem ADFS during authentication

Azure 通过条件访问策略确定是否需要 MFA(“RequireMFA”)。然后 Azure SSO 通过 WSFed 将身份验证请求委托给 OnPrem ADFS。身份验证后,OnPrem ADFS returns 到 Azure 的 SAML 令牌。

我的问题是,OnPrem ADFS 不知道 Azure 的条件访问策略评估了什么(是否需要 MFA)。

是否有机会让 ADFS 知道 RequireMFA 信息(即通过从 Azure 到 ADFS 的 WSFed 请求?)

如果您的 AD FS 服务器配置了 MFA 适配器,您可以执行以下操作。

如果联合域通过 https://docs.microsoft.com/en-us/powershell/module/msonline/set-msoldomainfederationsettings?view=azureadps-1.0 cmdlet 将 supportsmfa 配置为 TRUE,则当 Azure AD 端需要用户执行 MFA(例如由于 CA 策略)时,Azure AD 将重定向到 AD FS 的任何请求.

如果您的 AD FS 运行 Windows Server 2016 或更高版本 OS 并且您已经为云中的用户配置了 Azure MFA,请在 AD 上配置 MFA 适配器FS 使用 https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/operations/configure-ad-fs-and-azure-mfa and set supportsmfa=true using Set-MsolDomainAuthentication or Set-MsolDomainFederationSettings cmdlets. Then Azure AD will redirect to AD FS and AD FS will do the MFA using Azure MFA adapter) and return the claims indicating MFA was done at AD FS side. Your AD FS needs to have the claims rules as configured by Azure AD Connect. Else you can use https://adfshelp.microsoft.com/AadTrustClaims/ClaimsGenerator 生成正确的声明规则配置,这将使 AD FS 发出

http://schemas.microsoft.com/claims/authnmethodsreferences

使用类似于以下的规则声明。

@RuleName = "Pass through claim - authnmethodsreferences"
c:[Type == "http://schemas.microsoft.com/claims/authnmethodsreferences"]
 => issue(claim = c);

如果您仍然无法正常工作,请联系 Microsoft 支持。