如何使用 Microsoft Authenticator 通知中的其他上下文 - 身份验证方法策略

本主题介绍如何通过将登录的应用程序名称和地理位置添加到 Microsoft Authenticator 无密码和推送通知来提高用户登录的安全性。

先决条件

  • 你的组织将需要使用新的身份验证方法策略,为某些用户或组启用 Microsoft Authenticator 无密码和推送通知。 可以使用 Microsoft Entra 管理中心或 Microsoft Graph API 编辑身份验证方法策略。

    注意

    我们已改进 Microsoft 图形 API 的策略架构。 现已弃用旧的策略架构。 请确保使用新架构来帮助防止错误。

  • 其他上下文只能面向单个组,可以是动态的,也可以是嵌套的。 身份验证方法策略支持本地同步安全组和仅限云安全组。

无密码手机登录和多重身份验证

当用户在 Microsoft Authenticator 中接收到无密码手机登录或 MFA 推送通知时,他们将看到请求批准的应用程序的名称,以及基于登录源 IP 地址的位置。

Screenshot of additional context in the MFA push notification.

其他上下文可以与 数字匹配结合使用,以进一步提高登录安全性。

Screenshot of additional context with number matching in the MFA push notification.

策略架构更改

可以分别启用和禁用应用程序名称和地理位置。 在 featureSettings 下,可以为每项功能使用以下名称映射:

  • 应用程序名称:displayAppInformationRequiredState
  • 地理位置:displayLocationInformationRequiredState

注意

请确保使用 Microsoft 图形 API 的新策略架构。 在 Graph 浏览器中,需要同意 Policy.Read.All 和 Policy.ReadWrite.AuthenticationMethod 权限。

为每个功能确定单一目标组。 然后,使用以下 API 终结点将 featureSettings 下的 displayAppInformationRequiredState 或 displayLocationInformationRequiredState 属性更改为“已启用”,并包含或排除指定的组:

https://graph.microsoft.com/v1.0/authenticationMethodsPolicy/authenticationMethodConfigurations/MicrosoftAuthenticator

MicrosoftAuthenticatorAuthenticationMethodConfiguration 属性

属性

属性 类型​​ 描述
id String 身份验证方法策略标识符。
state authenticationMethodState 可能的值为:enabled
disabled

关系

关系 类型 说明
includeTargets microsoftAuthenticatorAuthenticationMethodTarget 集合 启用使用身份验证方法的用户或组的集合。
featureSettings microsoftAuthenticatorFeatureSettings 集合 Microsoft Authenticator 功能的集合。

MicrosoftAuthenticator includeTarget 属性

属性

属性 类型​​ 说明
authenticationMode String 可能的值为:
any:允许无密码手机登录和传统第二因素通知。
deviceBasedPush:仅允许无密码手机登录通知。
push:仅允许传统第二因素推送通知。
id 字符串 Microsoft Entra 用户或组的对象 ID。
targetType authenticationMethodTargetType 可能的值为:user、group 。

MicrosoftAuthenticator featureSettings 属性

属性

属性 类型​​ 说明
numberMatchingRequiredState authenticationMethodFeatureConfiguration 需要 MFA 通知的数字匹配。 忽略电话登录通知的值。
displayAppInformationRequiredState authenticationMethodFeatureConfiguration 确定用户是否会在 Microsoft Authenticator 通知中看到应用程序名称。
displayLocationInformationRequiredState authenticationMethodFeatureConfiguration 确定用户是否会在 Microsoft Authenticator 通知中看到地理位置上下文。

身份验证方法功能配置属性

属性

属性 类型​​ 说明
excludeTarget featureTarget 从此功能中排除的单个实体。
只能为每个功能排除一个组。
includeTarget featureTarget 此功能中包含的单个实体。
只能为每个功能包含一个组。
状态 advancedConfigState 可能的值为:
enabled 为所选组显式启用该功能。
disabled 为所选组显式禁用该功能。
“default”允许 Microsoft Entra ID 管理为所选组启用或禁用该功能。

功能目标属性

属性

属性 类型​​ 描述
id String 目标实体的 ID。
targetType featureTargetType 目标实体的种类,例如组、角色或管理单元。 可能的值为:group、administrativeUnit、role、unknownFutureValue。

如何为所有用户启用其他上下文的示例

在“featureSettings”中,将“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”从“默认”更改为“已启用”。

身份验证模式的值可以是“any”或“push”,具体取决于是否还想要启用无密码手机登录 。 在这些示例中,我们将使用“any”,但如果你不希望允许无密码,请使用“push”。

可能需要修补整个架构以防止覆盖任何以前的配置。 在这种情况下,首先执行 GET,仅更新相关字段,然后执行 PATCH。 以下示例介绍如何更新“featureSettings”下的“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”。

只有在 Microsoft Authenticator 的“includeTargets”下启用了 Microsoft Authenticator 的用户才能看到应用程序名称或地理位置。 未启用 Microsoft Authenticator 的用户将看不到这些功能。

//Retrieve your existing policy via a GET. 
//Leverage the Response body to create the Request body section. Then update the Request body similar to the Request body as shown below.
//Change the Query to PATCH and Run query
 
{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        "displayAppInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "all_users"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        },
        "displayLocationInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "all_users"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any",
        }
    ]
} 

如何为不同组启用应用程序名称和地理位置的示例

在“featureSettings”中,将“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”从“默认”更改为“已启用”。在每个 featureSetting 的“includeTarget”中,将 id 从“all_users”更改为 Microsoft Entra 管理中心内组的 ObjectID。

需要修补整个架构以防止覆盖任何以前的配置。 建议先执行 GET,然后仅更新相关字段,然后执行 PATCH。 以下示例介绍如何更新“featureSettings”下的“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”。

只有在 Microsoft Authenticator 的“includeTargets”下启用了 Microsoft Authenticator 的用户才能看到应用程序名称或地理位置。 未启用 Microsoft Authenticator 的用户将看不到这些功能。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        "displayAppInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "44561710-f0cb-4ac9-ab9c-e6c394370823"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        },
        "displayLocationInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "a229e768-961a-4401-aadb-11d836885c11"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any",
        }
    ]
}

若要验证,请再次运行 GET 并验证 ObjectID:

GET https://graph.microsoft.com/v1.0/authenticationMethodsPolicy/authenticationMethodConfigurations/MicrosoftAuthenticator

如何禁用应用程序名称和如何仅启用地理位置的示例

在“featureSettings”中,将“displayAppInformationRequiredState”的状态更改为“默认”或“已禁用”,并将“displayLocationInformationRequiredState”的状态更改为“已启用”。在每个 featureSetting 的“includeTarget”中,将 id 从“all_users”更改为 Microsoft Entra 管理中心内组的 ObjectID。

需要修补整个架构以防止覆盖任何以前的配置。 建议先执行 GET,然后仅更新相关字段,然后执行 PATCH。 以下示例介绍如何更新“featureSettings”下的“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”。

只有在 Microsoft Authenticator 的“includeTargets”下启用了 Microsoft Authenticator 的用户才能看到应用程序名称或地理位置。 未启用 Microsoft Authenticator 的用户将看不到这些功能。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        "displayAppInformationRequiredState": {
            "state": "disabled",
            "includeTarget": {
                "targetType": "group",
                "id": "44561710-f0cb-4ac9-ab9c-e6c394370823"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        },
        "displayLocationInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "a229e768-961a-4401-aadb-11d836885c11"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any",
        }
    ]
}

如何从应用程序名称和地理位置中排除组的示例

在“featureSettings”中,将“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”的状态从“默认”更改为“已启用”。在每个 featureSetting 的“includeTarget”中,将 id 从“all_users”更改为 Microsoft Entra 管理中心内组的 ObjectID。

此外,对于每个功能,你需要将 excludeTarget 的 ID 更改为 Microsoft Entra 管理中心内组的 ObjectID。 此更改将使该组无法查看应用程序名称或地理位置。

需要修补整个架构以防止覆盖任何以前的配置。 建议先执行 GET,然后仅更新相关字段,然后执行 PATCH。 以下示例介绍如何更新“featureSettings”下的“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”。

只有在 Microsoft Authenticator 的“includeTargets”下启用了 Microsoft Authenticator 的用户才能看到应用程序名称或地理位置。 未启用 Microsoft Authenticator 的用户将看不到这些功能。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        "displayAppInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "44561710-f0cb-4ac9-ab9c-e6c394370823"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "5af8a0da-5420-4d69-bf3c-8b129f3449ce"
            }
        },
        "displayLocationInformationRequiredState": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "a229e768-961a-4401-aadb-11d836885c11"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "b6bab067-5f28-4dac-ab30-7169311d69e8"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any",
        }
    ]
}

删除排除组的示例

在“featureSettings”中,将“displayAppInformationRequiredState”的状态从“默认”更改为“已启用”。你需将“excludeTarget”的 id 更改为 00000000-0000-0000-0000-000000000000

需要修补整个架构以防止覆盖任何以前的配置。 建议先执行 GET,然后仅更新相关字段,然后执行 PATCH。 以下示例介绍如何更新“featureSettings”下的“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”。

只有在 Microsoft Authenticator 的“includeTargets”下启用了 Microsoft Authenticator 的用户才能看到应用程序名称或地理位置。 未启用 Microsoft Authenticator 的用户将看不到这些功能。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        " displayAppInformationRequiredState ": {
            "state": "enabled",
            "includeTarget": {
                "targetType": "group",
                "id": "1ca44590-e896-4dbe-98ed-b140b1e7a53a"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": " 00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any"
        }
    ]
}

关闭其他上下文

若要关闭其他上下文,你需将“displayAppInformationRequiredState”和“displayLocationInformationRequiredState”从“已启用”修改为“已禁用”/“默认”。 你也可以只关闭其中一项功能。

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodConfigurations/$entity",
    "@odata.type": "#microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration",
    "id": "MicrosoftAuthenticator",
    "state": "enabled",
    "featureSettings": {
        "displayAppInformationRequiredState": {
            "state": "disabled",
            "includeTarget": {
                "targetType": "group",
                "id": "44561710-f0cb-4ac9-ab9c-e6c394370823"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        },
        "displayLocationInformationRequiredState": {
            "state": "disabled",
            "includeTarget": {
                "targetType": "group",
                "id": "a229e768-961a-4401-aadb-11d836885c11"
            },
            "excludeTarget": {
                "targetType": "group",
                "id": "00000000-0000-0000-0000-000000000000"
            }
        }
    },
    "includeTargets@odata.context": "https://graph.microsoft.com/v1.0/$metadata#authenticationMethodsPolicy/authenticationMethodConfigurations('MicrosoftAuthenticator')/microsoft.graph.microsoftAuthenticatorAuthenticationMethodConfiguration/includeTargets",
    "includeTargets": [
        {
            "targetType": "group",
            "id": "all_users",
            "isRegistrationRequired": false,
            "authenticationMode": "any",
        }
    ]
}

在 Microsoft Entra 管理中心启用其他上下文

要在 Microsoft Entra 管理中心内启用应用程序名称或地理位置,请完成以下步骤:

  1. 至少以身份验证策略管理员的身份登录到 Microsoft Entra 管理中心

  2. 浏览到“保护”>“身份验证方法”>“Microsoft Authenticator”。

  3. 在“基本信息”选项卡上,单击“是”和“所有用户”,以便为所有人启用此策略,并将“身份验证模式”更改为“任何”。

    只有在此处启用了 Microsoft Authenticator 的用户才能包含在此策略中,以显示登录的应用程序名称或地理位置,否则会将其排除在此策略外。 未启用 Microsoft Authenticator 的用户看不到应用程序名称和地理位置。

    Screenshot of how to enable Microsoft Authenticator settings for Any authentication mode.

  4. 在“配置”选项卡上,对于“在推送和无密码通知中显示应用程序名称”,将“状态”更改为“启用”,选择要在此策略中包括或排除的人员,然后单击“保存”。

    Screenshot of how to enable application name.

    然后,对于“在推送和无密码通知中显示地理位置”,执行相同的操作。

    Screenshot of how to enable geographic location.

    可以单独配置应用程序名称和地理位置。 例如,以下策略为所有用户启用应用程序名称和地理位置,但将“操作”组排除在查看地理位置之外。

    Screenshot of how to enable application name and geographic location separately.

已知问题

  • 网络策略服务器 (NPS) 或 Active Directory 联合身份验证服务 (AD FS) 不支持其他上下文。

  • 用户可以修改 iOS 和 Android 设备报告的位置。 因此,Microsoft Authenticator 正在更新其基于位置的访问控制 (LBAC) 条件访问策略的安全基线。 Authenticator 将拒绝身份验证,用户使用的位置可能与安装了 Authenticator 的移动设备的实际 GPS 位置不同。

    在 Authenticator 的 2023 年 11 月版本中,修改设备位置的用户在执行 LBAC 身份验证时会在 Authenticator 中看到拒绝消息。 从 2024 年 1 月开始,任何运行较旧 Authenticator 版本的用户都将被阻止使用修改后的位置进行 LBAC 身份验证:

    • Android 上的 Authenticator 版本 6.2309.6329 或更早版本
    • iOS 上的 Authenticator 版本 6.7.16 或更早版本

    若要查找哪些用户在运行旧版 Authenticator,请使用 Microsoft Graph API

后续步骤

Microsoft Entra ID 中的身份验证方法 - Microsoft Authenticator 应用