Azure 应用程序注册应用程序列表 - 需要访问权限

问题描述 投票:0回答:1

我需要访问令牌即将过期(例如 7 天后到期)的所有应用程序列表。我需要什么权限才能使用 python 脚本获取它?

我已经在门户中给出了Directory.Read.ALL和Application.Read.All。 在代码中,我可以使用 az ad login --service-principal 命令登录 但是当它访问 az add app list --all 时,它显示“没有足够的权限来完成操作”

azure command-line-interface azure-service-principal azure-app-registration
1个回答
0
投票

请注意,您需要在以服务主体身份登录时授予 Application 类型的 Application.Read.All 权限才能列出应用程序。

当我尝试在使用服务主体登录时通过授予 Dele脱 权限来列出应用程序时,出现了相同的错误,如下所示:

az login --service-principal -t <Tenant-ID> -u <Client-ID> -p <Client-secret> --allow-no-subscriptions
az ad app list --all

回复:

enter image description here

要解决该错误,请确保在应用程序注册中授予Application类型的 API 权限:

enter image description here

当我在授予 Application 权限后再次运行相同的命令时,我成功得到了如下响应:

az login --service-principal -t <Tenant-ID> -u <Client-ID> -p <Client-secret> --allow-no-subscriptions
az ad app list --all

回复:

enter image description here

要通过 Python 脚本获取这些应用程序列表,您可以使用以下示例代码:

import asyncio

from azure.identity import ClientSecretCredential
from msgraph import GraphServiceClient

tenant_id = "tenantId"
client_id = "appId"
client_secret = "secret"

credential = ClientSecretCredential(
    tenant_id=tenant_id,
    client_id=client_id,
    client_secret=client_secret
)

client = GraphServiceClient(credential)

async def main():
    result = await client.applications.get()
    applications = result.value
    for app in applications:
        print("App Name:", app.display_name)
        print("App ID:", app.id)
        print("--------------------------------------------------")

asyncio.run(main())

回复:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.