获取令牌即将过期的Azure应用列表所需权限咨询
权限要求与问题排查
核心权限要求
要获取令牌(应用凭据)将在7天内过期的应用列表,需确保服务主体拥有应用权限类型的以下权限:
Application.Read.All:允许读取所有应用的详细信息,包括凭据过期时间Directory.Read.All:辅助读取目录级别的应用数据(部分场景需要)
执行az ad app list --all报错的原因
你遇到的"Insufficient privileges"问题,大概率是以下情况之一:
- 权限类型错误:配置的是委派权限而非应用权限。服务主体登录(
az ad login --service-principal)仅支持应用权限,委派权限依赖用户上下文,服务主体无法使用。 - 未完成管理员同意:应用权限必须由全局管理员、应用程序管理员或云应用程序管理员授予管理员同意,仅在门户添加权限但未同意的话,权限不会生效。
- 权限范围受限:如果服务主体的角色分配被限制到特定OU或应用组,会导致无法读取所有应用数据,需确保角色分配范围为整个目录。
修复步骤
- 登录Azure门户,进入服务主体的「API权限」页面:
- 删除已配置的委派权限,重新添加应用权限类型的
Application.Read.All和Directory.Read.All - 点击「授予管理员同意」按钮完成权限授权
- 删除已配置的委派权限,重新添加应用权限类型的
- 重新执行
az ad login --service-principal登录,再尝试az ad app list --all命令
读取凭据过期时间的补充说明
获取应用凭据(客户端密码、证书)的过期时间,仅需Application.Read.All应用权限即可。你可以在Python脚本中通过解析Azure CLI输出,或调用Microsoft Graph API,筛选出passwordCredentials或keyCredentials中endDateTime在7天内的应用。
内容的提问来源于stack exchange,提问作者Ananya K P
相关产品推荐
相关产品推荐

