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

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

先决条件

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

    注意

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

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

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

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

MFA 推送通知中其他上下文的屏幕截图。

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

MFA 推送通知中具有数字匹配的其他上下文的屏幕截图。

策略架构更改

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

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

注意

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

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

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

有关详细信息,请参阅 microsoftAuthenticatorAuthenticationMethodConfiguration 资源类型

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

在“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 的用户看不到应用程序名称和地理位置。

    显示如何为“任何身份验证”模式启用 Microsoft Authenticator 设置的屏幕截图。

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

    显示如何启用应用程序名称的屏幕截图。

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

    显示如何启用地理位置的屏幕截图。

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

    显示如何分别启用应用程序名称和地理位置的屏幕截图。

已知问题

  • 网络策略服务器 (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 应用