你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

AzureDeveloperCliCredential 类

通过从Azure Developer CLI请求令牌进行身份验证。

Azure Developer CLI是一种命令行界面工具,允许开发人员在 Azure 中创建、管理和部署资源。 它基于 Azure CLI 构建,提供特定于 Azure 开发人员的其他功能。 它允许用户作为用户和/或服务主体对 Azure Active Directory (Azure AD) 进行身份验证。 AzureDeveloperCliCredential 在开发环境中进行身份验证,并代表 Azure Developer CLI 中登录的用户或服务主体获取令牌。 它充当登录用户或服务主体Azure Developer CLI,并在下方执行 Azure CLI 命令,以针对 Azure Active Directory 对应用程序进行身份验证。

若要使用此凭据,开发人员需要使用以下命令之一在本地Azure Developer CLI进行身份验证:

  • 在 Azure Developer CLI 中运行“azd auth login”,以用户身份以交互方式进行身份验证。

  • 运行“azd auth login –client-id 'client_id' –client-secret 'client_secret' –tenant-id 'tenant_id'”以服务主体身份进行身份验证。

根据组织中的刷新令牌有效性,可能需要在特定时间段后重复此过程。 通常,刷新令牌的有效期为几周到几个月。 AzureDeveloperCliCredential 将提示你再次登录。

继承
azure.identity.aio._internal.AsyncContextManager
AzureDeveloperCliCredential

构造函数

AzureDeveloperCliCredential(*, tenant_id: str = '', additionally_allowed_tenants: List[str] | None = None, process_timeout: int = 10)

参数

tenant_id
str

要包含在令牌请求中的可选租户。

additionally_allowed_tenants
List[str]

除了指定凭据可能为其获取令牌的指定“tenant_id”之外,还指定租户。 添加通配符值“*”以允许凭据获取应用程序可以访问的任何租户的令牌。

process_timeout
int

等待Azure Developer CLI进程响应的秒数。 默认值为 10 秒。

示例

创建 AzureDeveloperCliCredential。


   from azure.identity.aio import AzureDeveloperCliCredential

   credential = AzureDeveloperCliCredential()

方法

close

不需要调用此方法

get_token

请求 范围的访问令牌。

Azure SDK 客户端会自动调用此方法。 直接调用此方法的应用程序还必须处理令牌缓存,因为此凭据不会缓存它获取的令牌。

close

不需要调用此方法

async close() -> None

get_token

请求 范围的访问令牌。

Azure SDK 客户端会自动调用此方法。 直接调用此方法的应用程序还必须处理令牌缓存,因为此凭据不会缓存它获取的令牌。

async get_token(*scopes: str, claims: str | None = None, tenant_id: str | None = None, **kwargs: Any) -> AccessToken

参数

scopes
str
必需

访问令牌的所需范围。 此凭据仅允许每个请求一个范围。 有关范围的详细信息,请参阅 https://learn.microsoft.com/azure/active-directory/develop/scopes-oidc

claims
str

此凭据未使用;将忽略提供的任何值。

tenant_id
str

要包含在令牌请求中的可选租户。

返回

具有所需范围的访问令牌。

返回类型

例外

凭据无法调用Azure Developer CLI。

凭据调用了Azure Developer CLI但未收到访问令牌。