如何识别每个Azure AD App Registration的用途及是否仍在使用?
Azure 应用注册(服务主体)使用状态排查与标识优化方案
一、确认应用注册用途及活跃状态的方法
- 查看登录审计日志:进入Azure AD → 选择「企业应用程序」→ 搜索对应应用的客户端ID → 进入后点击「登录」选项卡,可查看最近90天内该服务主体的所有活动记录,若超过30天无任何登录记录,大概率为闲置冗余资源。
- 排查权限关联范围:执行Azure CLI命令
az role assignment list --assignee <目标应用client ID> --all即可查询该应用被分配了哪些订阅/资源组/资源级别的权限,根据权限覆盖的资源范围可反向定位对应的业务场景,比如分配了AKS集群权限的应用大概率和容器部署流水线相关。 - 业务配置反向匹配:如果该应用配置了密钥/证书,可以查看密钥的创建时间、过期时间,同时去对应业务的流水线配置、代码仓库变量、应用服务身份验证配置中搜索匹配client ID,确认实际使用方。
二、通过ID查询关联信息的操作
- 全资源检索:在Azure Portal顶部的全局搜索框直接输入完整的client ID,搜索结果会直接展示所有包含该ID的相关资源,包括角色分配、密钥保管库机密、访问策略配置等关联项。
- CLI元数据查询:运行命令
az ad sp show --id <client ID>可直接拉取该服务主体的所有元数据,包括创建人、创建时间、所有者、权限配置等核心信息。
三、为应用注册添加自定义标识的方法
完全支持添加自定义描述和标准化标识,操作方式如下:
- 门户操作:进入Azure AD的「应用注册」页面,找到目标应用,点击左侧「概述」→ 点击页面顶部的「属性」,即可编辑「描述」字段,填写该应用的使用场景、所有者、关联业务等信息,保存后即可永久展示。
- CLI批量更新:也可以通过命令批量设置标识:
az ad app update --id <client ID> --display-name <自定义易识别名称> --description "用于生产环境Terraform基础设施部署,所有者:DevOps团队"
建议后续创建服务主体时就同步指定名称和描述,比如创建时的命令可以调整为:
az ad sp create-for-rbac --name "dev-terraform-contributor" --role="Contributor" --scopes="/subscriptions/123456a1-a1b2-1234-12ab-12a3b4cdef67" --description "开发环境Terraform部署专用服务主体"
内容的提问来源于stack exchange,提问作者opticyclic
相关产品推荐
相关产品推荐

