使用审核日志排查条件访问策略更改问题

概述

排查环境中发生条件访问策略更改的原因和方式时,Microsoft Entra审核日志是有价值的信息来源。

默认情况下,审核日志数据将保留 30 天,这可能不足以满足每个组织的需求。 组织可以通过在 Microsoft Entra ID 中更改诊断设置来更长时间地存储数据:

  • 将数据发送到Log Analytics工作区
  • 将数据存档到存储帐户
  • 将数据流式传输到事件中心
  • 将数据发送到合作伙伴解决方案

在Entra ID>Monitoring & health>Diagnostic settings>编辑设置下找到这些选项。 如果您没有诊断设置,请参阅 “创建诊断设置,将平台日志和指标发送到不同的目标” 以了解如何创建诊断设置的说明。

使用审核日志

  1. 以至少具备 Reports Reader 身份登录到 Microsoft Entra admin center。

  2. 浏览到 Entra ID>监控与健康>审计日志。

  3. 选择要查询的 日期 范围。

  4. 在“服务”筛选器中,选择“条件访问”,然后选择“应用”按钮。

    默认情况下,审核日志显示所有活动。 使用 活动 筛选器缩小活动范围。 有关条件访问的审核日志活动的完整列表,请参阅审核日志活动。

  5. 选择一行以查看详细信息。 “修改的属性”选项卡列出了所选审核活动的已修改 JSON 值。

审核日志条目的屏幕截图,其中显示了条件访问策略的旧 JSON 值和新 JSON 值。

使用 Log Analytics

Log Analytics 允许组织使用内置查询或自定义 Kusto 查询对数据进行查询。 有关详细信息,请参阅 在 Azure Monitor 中开始日志查询。

这是一个关于条件访问策略更新的 Log Analytics 查询的截图,显示新值和旧值的位置。

启用后,在Entra IDMonitoring & healthLog Analytics中找到日志分析功能。 与条件访问管理员最相关的表是 AuditLogs。

AuditLogs 
| where OperationName == "Update Conditional Access policy"

在 TargetResources>modifiedProperties 下查找更改。

读取值

审核日志和 Log Analytics 中的旧值和新值均采用 JSON 格式。 比较这两个值以标识策略的更改。

旧策略示例:

{
    "conditions": {
        "applications": {
            "applicationFilter": null,
            "excludeApplications": [
            ],
            "includeApplications": [
                "797f4846-ba00-4fd7-ba43-dac1f8f63013"
            ],
            "includeAuthenticationContextClassReferences": [
            ],
            "includeUserActions": [
            ]
        },
        "clientAppTypes": [
            "browser",
            "mobileAppsAndDesktopClients"
        ],
        "servicePrincipalRiskLevels": [
        ],
        "signInRiskLevels": [
        ],
        "userRiskLevels": [
        ],
        "users": {
            "excludeGroups": [
                "eedad040-3722-4bcb-bde5-bc7c857f4983"
            ],
            "excludeRoles": [
            ],
            "excludeUsers": [
            ],
            "includeGroups": [
            ],
            "includeRoles": [
            ],
            "includeUsers": [
                "All"
            ]
        }
    },
    "displayName": "Common Policy - Require MFA for Azure management",
    "grantControls": {
        "builtInControls": [
            "mfa"
        ],
        "customAuthenticationFactors": [
        ],
        "operator": "OR",
        "termsOfUse": [
            "a0d3eb5b-6cbe-472b-a960-0baacbd02b51"
        ]
    },
    "id": "334e26e9-9622-4e0a-a424-102ed4b185b3",
    "modifiedDateTime": "2021-08-09T17:52:40.781994+00:00",
    "state": "enabled"
}

已更新的策略示例:

{
    "conditions": {
        "applications": {
            "applicationFilter": null,
            "excludeApplications": [
            ],
            "includeApplications": [
                "797f4846-ba00-4fd7-ba43-dac1f8f63013"
            ],
            "includeAuthenticationContextClassReferences": [
            ],
            "includeUserActions": [
            ]
        },
        "clientAppTypes": [
            "browser",
            "mobileAppsAndDesktopClients"
        ],
        "servicePrincipalRiskLevels": [
        ],
        "signInRiskLevels": [
        ],
        "userRiskLevels": [
        ],
        "users": {
            "excludeGroups": [
                "eedad040-3722-4bcb-bde5-bc7c857f4983"
            ],
            "excludeRoles": [
            ],
            "excludeUsers": [
            ],
            "includeGroups": [
            ],
            "includeRoles": [
            ],
            "includeUsers": [
                "All"
            ]
        }
    },
    "displayName": "Common Policy - Require MFA for Azure management",
    "grantControls": {
        "builtInControls": [
            "mfa"
        ],
        "customAuthenticationFactors": [
        ],
        "operator": "OR",
        "termsOfUse": [
        ]
    },
    "id": "334e26e9-9622-4e0a-a424-102ed4b185b3",
    "modifiedDateTime": "2021-08-09T17:52:54.9739405+00:00",
    "state": "enabled"
}

在前面的示例中,更新的策略不包括授予控件中的使用条款。