在排查环境中发生条件访问策略更改的原因和方式时,Microsoft Entra 审核日志是非常有价值的信息来源。
默认情况下,审核日志数据将保留 30 天,这可能不足以满足每个组织的需求。 组织可以通过将Microsoft Entra ID 中的诊断设置更改为:
- 将数据发送到 Log Analytics 工作区
 - 将数据存档到存储帐户
 - 将数据流式传输到事件中心
 - 将数据发送到合作伙伴解决方案
 
在 Entra ID>监控和健康>诊断设置>编辑设置下查找这些选项。 如果没有诊断设置,请参阅 “创建诊断设置”,将平台日志和指标发送到不同的目标 ,以获取创建一个相关说明。
使用审核日志
至少以报告读取者身份登录到 Microsoft Entra 管理中心。
浏览到 Entra ID>监视和运行状况>审核日志。
选择要查询的 日期 范围。
在“服务”筛选器中,选择“条件访问”,然后选择“应用”按钮。
默认情况下,审核日志显示所有活动。 使用 活动 筛选器缩小活动范围。 有关条件访问的审核日志活动的完整列表,请参阅审核日志活动。
选择一行以查看详细信息。 “修改的属性”选项卡列出了所选审核活动的已修改 JSON 值。
使用 Log Analytics
Log Analytics 允许组织使用内置查询或自定义创建的 Kusto 查询查询数据。 有关详细信息,请参阅 Azure Monitor 中的日志查询入门。
启用后,在 Entra ID>Monitoring & health>Log Analytics 中找到 Log 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"
}
在前面的示例中,更新的策略不包括授予控件中的使用条款。