如何判断Azure客户端密钥(client secret)是否正在被使用?
确认Azure AD应用客户端密钥使用状态的可行方法
- 查Azure AD服务主体登录日志
直接进入Azure AD管理中心,找到对应的应用注册页,切换到「监控」分类下的「登录日志」板块,筛选类型为「服务主体登录」,每条成功的token获取请求都会记录用到的凭据key ID,直接匹配待检查client secret的唯一key ID即可确认该密钥是否有调用记录。注意:日志默认仅保留30天,如果你之前没有配置日志长期存储,无法查询超过30天的调用记录。
- 用Microsoft Graph接口批量查询
如果你需要批量核对数十上百个应用的密钥使用状态,可以调用auditLogs/signIns接口做批量过滤查询,示例过滤参数为:$filter=appId eq '目标应用的AppID' and keyId eq '待验证的密钥KeyID'
你可以把所有待检查的密钥的KeyID整理成列表,写脚本批量拉取调用记录即可。 - 灰度验证兜底方案
如果你已经没有可用的历史日志数据,可以用灰度轮换的方式确认:先为目标应用新增一个备用client secret,将即将到期的旧密钥有效期延长7~14天,观察所有依赖该应用的业务、定时任务是否有认证报错,如果整个观察期内没有任何相关异常,即可判定该旧密钥没有被使用,可直接删除。提示:如果有离线、跨环境部署的业务,要确保观察覆盖所有运行环境的全量调用场景,避免遗漏低频定时任务的调用。
内容的提问来源于stack exchange,提问作者Jon Crowell
相关产品推荐
相关产品推荐

