监视、调查和修正高风险用户

已完成

调查风险

标识保护为组织提供了三种报告,用于调查其环境中的标识风险:风险用户、风险登录和风险检测。 事件调查是深入了解和找出安全策略中任何薄弱点的关键所在。

这三种报表都能以 .CSV 格式下载事件,以供在 Azure 门户之外进一步分析。 风险用户和风险登录报告支持下载最近的 2,500 个条目,而风险检测报告则允许下载最近的 5,000 条记录。

组织可利用 Microsoft Graph API 集成,将数据与其有权作为组织访问的其他来源聚合在一起。

可以在“Microsoft Entra 管理中心”>“标识”>“保护 - 标识保护”中找到这三个报表

每个报表启动时,报表顶部都有一个列表来显示该时间段内的所有检测。 每个报表都允许根据管理员偏好添加或删除列。 管理员可选择以 .CSV 或 .JSON 格式下载数据。 使用报表顶部的筛选器可筛选报表。

选择单个条目时,会启用报告顶部的其他条目,例如确认登录是遭到泄露还是安全无虞、确认用户是否遭到入侵,或消除用户风险的功能。

选择单个条目后,将展开检测下方的“详细信息”窗口。 管理员可通过“详细信息”视图对每次检测进行调查和执行操作。

标识保护报告的屏幕截图,其中显示了有风险的登录和详细信息。

有风险用户

通过风险用户报表提供的信息,管理员可找出:

  • 哪些用户面临风险、其风险是否已得到修正,或其风险已被消除?
  • 有关检测的详细信息。
  • 所有风险登录的历史记录。
  • 风险历史记录。

然后,管理员可选择对这些事件执行操作。 他们可以选择:

  • 重置用户密码。
  • 确认用户是否遭到入侵。
  • 消除用户风险。
  • 阻止用户登录。
  • 使用 Azure ATP 进一步调查。

有风险的登录

风险登录报告最多包含过去 30 天(1 个月)的可筛选数据。

通过风险登录报表提供的信息,管理员可找出:

  • 哪些登录被归类为存在风险、确认已泄露、确认安全、已消除或已修正。
  • 与登录尝试关联的实时风险级别和聚合风险级别。
  • 触发的检测类型。
  • 应用的条件访问策略。
  • MFA 详细信息。
  • 设备信息。
  • 应用程序信息。
  • 位置信息。

然后,管理员可选择对这些事件执行操作。 管理员可选择:

  • 确认登录是否遭到泄露。
  • 确认登录是否安全。

风险检测

风险检测报告最多包含过去 90 天(3 个月)的可筛选数据。

通过风险检测报表提供的信息,管理员可找出:

  • 每项风险检测的相关信息,包括类型。
  • 同时触发的其他风险。
  • 尝试登录的位置。

然后,管理员可选择返回到用户的风险或登录报表,根据收集到的信息采取措施。

风险检测报告还提供 Microsoft Defender for Cloud Apps (MDCA) 门户中相应检测的可单击链接,你可以在该门户中查看其他日志和警报。

注意

我们的系统会检测导致风险用户风险分数的风险事件是否为误报,或者用户风险是否已通过强制执行策略(如完成 MFA 提示或更改安全密码)得到修正。 因此,系统将消除风险状态,显示“AI 已确认登录安全”的风险详细信息,并且不再构成用户风险。

修正风险并对用户解除阻止

完成调查后,需要采取措施来修正风险或对用户取消阻止。 组织还可以选择使用其风险策略来启用自动修正。 组织应尝试关闭在组织能够接受的时间段内出现的所有风险检测。 Microsoft 建议尽快关闭事件,因为在处理风险时,时间很重要。

补救

所有主动的风险检测都有助于计算称作“用户风险等级”的值。 用户风险级别是反映帐户泄露可能性的一个指标(低、中、高)。 管理员希望能够关闭所有风险检测,以便受影响的用户不再面临风险。

某些风险检测会被标识保护标记为“已关闭(系统)”,因为这些事件被确定为不再有风险。

管理员可以使用以下选项进行修正:

  • 利用风险策略自行修正。
  • 手动重置密码。
  • 消除用户风险。
  • 手动关闭单个风险检测。

利用风险策略自行修正

如果允许用户自行修正,且风险策略中有多重身份验证 (MFA) 和自助式密码重置 (SSPR),则可以在检测到风险时对这些用户解除阻止。 然后,这些检测将被视为已解决。 用户必须已注册 MFA 和 SSPR,才能在检测到风险时使用。

某些检测不会将风险提高到需要用户自行修正的级别,但管理员仍应评估这些检测。 管理员可以确定是否需要采取其他措施,例如阻止来自某些位置的访问,或降低其策略中可接受的风险。

手动重置密码

如果无法使用用户风险策略来重置密码,则管理员可以使用手动密码重置关闭用户的所有风险检测。

为用户重置密码时,管理员有两个选项:

生成临时密码 - 生成临时密码可以立即让标识恢复安全状态。 此方法需要联系受影响的用户,因为他们需要知道临时密码。 由于密码是临时的,因此,在下一次登录期间,系统会提示用户将密码更改为新密码。

要求用户重置密码 - 要求用户重置密码可以实现自助恢复,而无需联系支持人员或管理员。 此方法仅适用于已注册 MFA 和 SSPR 的用户。 对于尚未注册的用户,此选项不可用。

消除用户风险

如果不适合重置密码,例如,已删除用户,你可以选择取消用户风险检测。

选择“消除用户风险”时,所有事件都会关闭,受影响的用户不再有风险。 但是,由于此方法不影响现有密码,因此不会将相关标识恢复到安全状态。

手动关闭单个风险检测

手动关闭风险检测可以降低用户风险级别。 通常情况下,手动关闭风险检测是为了响应相关调查,例如与用户交谈时发现不再需要风险检测。

手动关闭风险检测时,可以选择执行以下任一操作来更改风险检测的状态:

  • 确认用户是否遭到入侵。
  • 消除用户风险。
  • 确认登录是否安全。
  • 确认登录是否遭到泄露。

对用户取消阻止

管理员可以选择基于其风险策略或调查阻止登录。 基于登录或用户风险进行阻止。

基于用户风险取消阻止

若要取消因用户风险而被阻止的帐号,管理员可选择以下选项:

  • 重置密码 - 可以重置用户的密码。
  • 消除用户风险 - 如果已达到配置的阻止访问的用户风险级别,用户风险策略将会阻止用户。 可以通过消除用户风险或手动关闭报告的风险检测来降低用户的风险级别。
  • 从策略中排除用户 -如果你认为登录策略的当前配置导致特定用户出现问题,则可以从策略中排除用户。
  • 禁用 - 如果认为策略配置导致所有用户出现问题,可禁用该策略。

基于登录风险取消阻止

若要基于登录风险对帐户取消阻止,管理员可以使用以下选项:

  • 从熟悉的位置或设备登录 - 已阻止可疑登录的常见原因是尝试从不熟悉的位置或设备登录。 用户可尝试从熟悉的位置或设备登录来快速确定这是否是阻止原因。
  • 从策略中排除用户 -如果你认为登录策略的当前配置导致特定用户出现问题,则可以从策略中排除用户。
  • 禁用 - 如果认为策略配置导致所有用户出现问题,可禁用该策略。

PowerShell 预览

通过 Microsoft Graph PowerShell SDK 预览模块,组织可以使用 PowerShell 来管理风险。 预览模块和示例代码位于 Azure GitHub 存储库中。

使用 Microsoft Graph API

Microsoft Graph 是 Microsoft 统一 API 终结点,也是 Microsoft Entra Identity Protection API 的主页。 有三个 API 可公开关于有风险的用户和登录的信息:riskDetection, riskyUsers, and signIn

riskDetection可让你查询 Microsoft Graph,获取与用户和登录相关的风险检测列表以及检测的相关信息。

riskyUsers可让你查询 Microsoft Graph,获取被标识保护检测为有风险的用户的相关信息。

signIn 可让你通过与风险状态、详细信息和级别相关的特定属性查询 Microsoft Graph,从而获取有关 Microsoft Entra ID 登录的信息。

本部分可帮助你开始连接到 Microsoft Graph 并查询这些 API。 如需详细版介绍、完整文档和访问 Graph 浏览器,请参阅 Microsoft Graph 站点 (https://graph.microsoft.io/) 或 riskDetection, riskyUsers, and signIn API 的特定参考文档。

连接到 Microsoft Graph

通过 Microsoft Graph 访问标识保护数据有四个步骤:检索域名、创建新的应用注册、配置 API 权限和配置有效的凭据。

检索域名

  1. 登录到 Microsoft Entra 管理中心。
  2. 浏览到“标识”,然后打开“设置”,选择“域名”
  3. 记下 .onmicrosoft.com 域。 后面的步骤需要用到此信息。

创建新的应用注册

  1. 在 Microsoft Entra 管理中心,依次浏览到“标识和应用程序”和“应用注册”

  2. 选择“新注册”。

  3. 在“创建”页中,执行以下步骤:

    1. 在“名称”文本框中,键入应用程序的名称(例如:Microsoft Entra 风险检测 API)。
    2. 在“受支持的帐户类型”下,选择将使用 API 的帐户类型。
    3. 选择“注册”。
  4. 复制“应用程序 ID”。

配置 API 权限

  1. 从创建的“应用程序”中,选择“API 权限”。

  2. 在“配置权限”页中,在顶部工具栏中选择“添加权限”。

  3. 在“添加 API 访问权限”页上,选择“选择 API”。

  4. 在“选择 API”页上,选择“Microsoft Graph”,然后选择“选择”。

  5. 在“请求 API 权限”页中:

    1. 选择“应用程序权限”。
    2. 选中“IdentityRiskEvent.Read.All”和“IdentityRiskyUser.Read.All”旁边的复选框。
    3. 选择“添加权限”。
  6. 选择“为域授予管理员同意”。

配置有效凭据

  1. 从创建的“应用程序”中,选择“证书和机密”。

  2. 在“客户端机密”下,选择“新建客户端密钥” 。

    1. 为客户端密码提供“说明”,并根据组织策略设置到期时间段。

    2. 选择 添加

      注意

      如果此密钥丢失,则必须返回此部分并创建一个新密钥。 将此密钥进行保密:持有该密钥的任何人都可以访问数据。

向 Microsoft Graph 进行身份验证并查询标识保护风险检测 API

现在应已获得:

  • 租户域的名称
  • 应用程序(客户端)ID
  • 客户端密码或证书

若要进行身份验证,请向 https://login.microsoft.com 发送一个 post 请求,并在请求正文中包含以下参数:

  • grant_type: client_credentials
  • 资源:https://graph.microsoft.com
  • client_id:
  • client_secret:

如果成功,此请求将返回身份验证令牌。 若要调用 API,请创建包含以下参数的标头:

Authorization`="<token_type> <access_token>"




身份验证时,可以在返回的令牌中找到令牌类型和访问令牌。

将此标头作为请求发送到以下 API URL:https://graph.microsoft.com/v1.0/identityProtection/riskDetections

如果成功,响应中会包含标识风险检测的集合,以及采用 OData JSON 格式的相关数据,在适当的情况下可以分析和处理这些数据。

示例

此示例演示如何使用共享机密进行身份验证。 在生产环境中,一般不推荐在代码中存储机密。 组织可以使用 Azure 资源的托管标识来保护这些凭据。

下面是使用 PowerShell 进行身份验证和调用 API 的示例代码。 只需添加客户端 ID、密钥和租户域即可。

    $ClientID      = "<your client ID here>"        # Should be a ~36 hex character string; insert your info here

    $ClientSecret  = "<your client secret here>"    # Should be a ~44 character string; insert your info here

    $tenantdomain  = "<your tenant domain here>"    # For example, contoso.onmicrosoft.com

    $loginURL      = "https://login.microsoft.com"

    $resource      = "https://graph.microsoft.com"

    $body          = @{grant_type="client_credentials";resource=$resource;client_id=$ClientID;client_secret=$ClientSecret}

    $oauth        = Invoke-RestMethod -Method Post -Uri $loginURL/$tenantdomain/oauth2/token?api-version=1.0 -Body $body

    Write-Output $oauth

    if ($oauth.access_token -ne $null) {

        $headerParams = @{'Authorization'="$($oauth.token_type) $($oauth.access_token)"}

        $url = "https://graph.microsoft.com/v1.0/identityProtection/riskDetections"

        Write-Output $url

        $myReport = (Invoke-WebRequest -UseBasicParsing -Headers $headerParams -Uri $url)

        foreach ($event in ($myReport.Content | ConvertFrom-Json).value) {

            Write-Output $event

        }

    } else {

        Write-Host "ERROR: No Access Token"

    }





获取所有脱机风险检测 (riskDetection API)

使用标识保护登录风险策略,可以在实时检测到风险时应用条件。 但对于脱机发现的检测,该怎么办? 要了解哪些检测是脱机发生的,而没有触发登录风险策略,可以查询 riskDetection API。

GET https://graph.microsoft.com/v1.0/identityProtection/riskDetections?$filter=detectionTimingType eq 'offline'




获取成功通过了由风险登录策略触发的 MFA 质询的所有用户 (riskyUsers API)

若要了解标识保护基于风险的策略对组织的价值,可以查询成功通过了由风险登录策略触发的 MFA 质询的所有用户。 这些信息可以帮助你了解哪些用户标识保护被错误地检测为风险,哪些合法用户正在执行 AI 认为有风险的操作。

GET https://graph.microsoft.com/v1.0/identityProtection/riskyUsers?$filter=riskDetail eq 'userPassedMFADrivenByRiskBasedPolicy'