保护基于手机的多重身份验证

Important

自 2025 年 5 月 1 日起,Azure AD B2C 将不再可供新客户购买。 在我们的常见问题解答中了解详细信息

借助Microsoft Entra 多重身份验证,用户可以选择在注册进行验证的电话号码处接收自动语音呼叫。 恶意用户可以通过创建多个帐户并拨打电话来利用此方法,而无需完成 MFA 注册过程。 这些失败的注册可能会耗尽允许的注册尝试,从而阻止其他用户在 Azure AD B2C 租户中注册新帐户。 为了帮助防止这些攻击,可以使用 Azure Monitor 监视电话身份验证失败并缓解欺诈性注册。

Important

验证器应用(TOTP)提供比 SMS/Phone 多重身份验证更强大的安全性。 若要设置此项,请阅读有关 在 Azure Active Directory B2C 中启用多重身份验证的说明。

先决条件

在开始之前,请创建 Log Analytics 工作区

创建基于手机的 MFA 事件工作簿

GitHub 中的 Azure AD B2C 报表和警报 存储库包含可用于基于 Azure AD B2C 日志创建和发布报表、警报和仪表板的项目。 下图所示的草稿工作簿重点介绍了与电话相关的失败情况。

“概述”选项卡

概述 ”选项卡上显示了以下信息:

  • 失败原因(每个给定原因的电话身份验证失败总数)
  • 由于信誉不良而被阻止
  • 具有失败电话身份验证的 IP 地址(每个给定 IP 地址的失败电话身份验证总数)
  • 与 IP 地址关联的电话号码 - 电话验证失败
  • 浏览器(按客户端浏览器统计的电话身份验证失败情况)
  • 操作系统(每个客户端操作系统上的电话身份验证失败)

“概述”选项卡

“详细信息”选项卡

在“ 详细信息 ”选项卡上报告以下信息:

  • Azure AD B2C 策略 - 电话身份验证失败
  • 按电话号码列出的电话身份验证失败 - 时间图表(可调整的时间线)
  • Azure AD B2C 策略的电话身份验证失败 - 时间图表(可调整的时间线)
  • 按 IP 地址列出的电话身份验证失败 - 时间图表(可调整的时间线)
  • 选择电话号码以查看失败详细信息(选择电话号码以获取详细故障列表)

详细信息选项卡 1(共 3 个)

详细信息选项卡 2(共 3 个)

“详细信息”选项卡 3(共 3 个)

使用工作簿来识别欺诈性注册

可以使用工作簿来了解基于电话的 MFA 事件,并确定对电话服务的潜在恶意使用。

  1. 通过回答以下问题了解租户的正常情况:

    • 你期望的基于电话的 MFA 来自哪些地区?
    • 检查基于电话的 MFA 尝试失败所显示的原因;是否正常或在意料中?
  2. 识别欺诈性注册的特征:

    • 基于位置:检查“电话身份验证失败(按 IP 地址)”,查找是否有任何与不希望用户注册的位置相关联的帐户。

    注意

    提供的 IP 地址是大致区域。

    • 基于速度:查看“近期失败的身份验证(按天)”,这其中指示了每天拨打异常号码,导致电话身份验证尝试失败的电话号码,按照从最高(左)到最低(右)的顺序排列。
  3. 按照下一部分中的步骤,减少欺诈性注册。

缓解自定义策略中的欺诈性注册

为了帮助防止欺诈性注册,请按照以下步骤删除不适用于组织的任何国家/地区代码:

  1. 找到定义 RelyingParty 的策略文件。 例如,在 初学者包中,这通常是 SignUpOrSignin.xml 文件。 请参阅以下代码片段。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06"
     PolicySchemaVersion="0.3.0.0"
     TenantId="yourtenant.partner.onmschina.cn"
     PolicyId="B2C_1A_signup_signin"
     PublicPolicyUri="http://yourtenant.partner.onmschina.cn/B2C_1A_signup_signin">
    
     <BasePolicy>
       <TenantId>yourtenant.partner.onmschina.cn</TenantId>
       <PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
     </BasePolicy>
    
     <!-- Add this BuildingBlocks section to the relying party policy. -->
     <BuildingBlocks>
        <!-- Add the XML code outlined in Step 2 in this section. -->
     </BuildingBlocks>
    
     <RelyingParty>
       ...
     </RelyingParty>
    </TrustFrameworkPolicy>
    

    Important

    将步骤 2 中的代码添加到 信赖方策略 ,以在服务器端强制实施国家/地区代码限制。 不能仅在父策略中定义这些元素,应将其放置在信赖方策略中。

  2. 在此 BuildingBlocks 策略文件的部分中,添加以下代码。 请确保仅包含与组织相关的国家/地区代码:

     <BuildingBlocks>
    
       <ContentDefinitions>
         <ContentDefinition Id="api.phonefactor">
           <LoadUri>~/tenant/templates/AzureBlue/multifactor-1.0.0.cshtml</LoadUri>
           <DataUri>urn:com:microsoft:aad:b2c:elements:contract:multifactor:1.2.20</DataUri>
           <Metadata>
             <Item Key="TemplateId">azureBlue</Item>
           </Metadata>
           <LocalizedResourcesReferences MergeBehavior="Prepend">
             <!-- Add only primary business language here -->
             <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.phonefactor.en" />        
           </LocalizedResourcesReferences>
         </ContentDefinition>
       </ContentDefinitions>
    
       <Localization Enabled="true">
         <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
           <!-- Add only primary business language here -->
           <SupportedLanguage>en</SupportedLanguage>
         </SupportedLanguages>
    
         <!-- Phone factor for primary business language -->
         <LocalizedResources Id="api.phonefactor.en">
           <LocalizedStrings>
            <LocalizedString ElementType="UxElement" StringId="countryList">{"DEFAULT":"Country/Region","JP":"Japan","BG":"Bulgaria","US":"United States"}</LocalizedString>
           </LocalizedStrings>
         </LocalizedResources>
       </Localization>
    
      </BuildingBlocks>
    

    countryList 充当允许列表。 仅允许在此列表中指定的国家/地区(例如日本、保加利亚和美国)使用 MFA。 所有其他国家/地区都将被阻止。