You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure API(Python库)由Application-ID获取Object-ID?

通过Python获取Azure注册应用的Object-ID(已知Application-ID)

前置准备

  • 确保你的Azure应用注册已获得Application.Read.All应用权限,且已完成管理员同意(在Azure门户的应用注册->API权限页面操作)
  • 准备好以下信息:
    • 租户ID(Azure AD的租户ID)
    • 应用的Application-ID(即client_id)
    • 应用的客户端密码(client_secret,需在应用注册的“证书和密码”页面生成)

安装依赖库

执行以下命令安装所需的Python包:

pip install azure-identity azure-mgmt-graphrbac

Python代码实现

from azure.identity import ClientSecretCredential
from azure.mgmt.graphrbac import GraphRbacManagementClient

# 替换为你的实际信息
TENANT_ID = "你的租户ID"
CLIENT_ID = "你的应用Application-ID"
CLIENT_SECRET = "你的应用客户端密码"

# 初始化认证凭据
credential = ClientSecretCredential(
    tenant_id=TENANT_ID,
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET
)

# 初始化Graph RBAC客户端
graph_client = GraphRbacManagementClient(
    credential=credential,
    tenant_id=TENANT_ID
)

# 查询应用并获取Object-ID
def get_app_object_id(app_id):
    # 用filter精准匹配目标应用,避免全量遍历
    apps = graph_client.applications.list(filter=f"appId eq '{app_id}'")
    for app in apps:
        return app.object_id
    return None

# 调用函数获取结果
object_id = get_app_object_id(CLIENT_ID)
if object_id:
    print(f"应用的Object-ID是: {object_id}")
else:
    print("未找到对应Application-ID的应用")

关键说明

  • 代码通过filter参数精准定位目标应用,提升查询效率
  • 若租户内应用数量较多,list方法会返回分页结果,可通过next_link循环获取所有页数据
  • 若遇到权限相关错误,检查应用权限是否已正确添加并完成管理员同意

内容的提问来源于stack exchange,提问作者michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:12:26