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

aio 包

异步 Azure SDK 客户端的凭据。

AuthorizationCodeCredential

通过兑换以前从 Azure Active Directory 获取的授权代码进行身份验证。

有关身份验证流的详细信息,请参阅 Azure Active Directory 文档

AzureCliCredential

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

这需要以前通过“az login”登录到 Azure,并使用 CLI 的当前登录标识。

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 将提示你再次登录。

AzurePowerShellCredential

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

这需要以前通过“Connect-AzAccount”登录到 Azure,并使用当前登录的标识。

CertificateCredential

使用证书作为服务主体进行身份验证。

证书必须具有 RSA 私钥,因为此凭据使用 RS256 对断言进行签名。 有关配置证书身份验证的详细信息,请参阅 Azure Active Directory 文档

ChainedTokenCredential

凭据序列,它本身是凭据。

get_token 方法按顺序调用 get_token 序列中的每个凭据,返回收到的第一个有效令牌。

ClientAssertionCredential

使用 JWT 断言对服务主体进行身份验证。

此凭据适用于高级方案。 CertificateCredential 对于最常见的断言方案,使用证书对服务主体进行身份验证具有更方便的 API。

ClientSecretCredential

使用客户端密码作为服务主体进行身份验证。

DefaultAzureCredential

能够处理大多数 Azure SDK 身份验证方案的默认凭据。

它使用的标识取决于环境。 当需要访问令牌时,它会依次使用这些标识请求访问令牌,并在提供令牌时停止:

  1. 由环境变量配置的服务主体。 有关详细信息,请参阅 EnvironmentCredential

  2. WorkloadIdentityCredential 如果环境变量配置由 Azure 工作负载标识 Webhook 设置。

  3. Azure 托管标识。 有关详细信息,请参阅 ManagedIdentityCredential

  4. 仅限 Windows:已使用 Microsoft 应用程序(如 Visual Studio)登录的用户。 如果缓存中有多个标识,则使用环境变量 AZURE_USERNAME 的值来选择要使用的标识。 有关详细信息,请参阅 SharedTokenCacheCredential

  5. 当前登录到 Azure CLI 的标识。

  6. 当前登录到Azure PowerShell的标识。

  7. 当前登录到Azure Developer CLI的标识。

可以使用 关键字 (keyword) 参数配置此默认行为。

EnvironmentCredential

环境变量配置的凭据。

此凭据能够使用客户端密码或证书作为服务主体进行身份验证,或者作为具有用户名和密码的用户进行身份验证。 使用以下环境变量按以下顺序尝试配置:

具有机密的服务主体:

  • AZURE_TENANT_ID:服务主体租户的 ID。 也称为其“目录”ID。

  • AZURE_CLIENT_ID:服务主体的客户端 ID

  • AZURE_CLIENT_SECRET:服务主体的客户端机密之一

  • AZURE_AUTHORITY_HOST:Azure Active Directory 终结点的颁发机构,例如“login.microsoftonline.com”,Azure 公有云的颁发机构,如果未给出任何值,则为默认值。

具有证书的服务主体:

  • AZURE_TENANT_ID:服务主体租户的 ID。 也称为其“目录”ID。

  • AZURE_CLIENT_ID:服务主体的客户端 ID

  • AZURE_CLIENT_CERTIFICATE_PATH:PEM 或 PKCS12 证书文件(包括私钥)的路径。

  • AZURE_CLIENT_CERTIFICATE_PASSWORD: (证书文件的可选) 密码(如果有)。

  • AZURE_AUTHORITY_HOST:Azure Active Directory 终结点的颁发机构,例如“login.microsoftonline.com”,Azure 公有云的颁发机构,如果未给出任何值,则为默认值。

ManagedIdentityCredential

在任何支持托管标识的托管环境中,使用 Azure 托管标识进行身份验证。

此凭据默认使用系统分配的标识。 若要配置用户分配的标识,请使用关键字 (keyword) 参数之一。 有关为应用程序配置托管标识的详细信息,请参阅 Azure Active Directory 文档

OnBehalfOfCredential

通过代理流对服务主体进行身份验证。

此流通常由中间层服务使用委托的用户标识授权对其他服务的请求。 由于这不是交互式身份验证流,因此使用它的应用程序在为其请求令牌之前,必须获得管理员对任何委派权限的管理员同意。 有关代理流的更详细说明,请参阅 Azure Active Directory 文档

SharedTokenCacheCredential

使用在 Microsoft 应用程序之间共享的本地缓存中的令牌进行身份验证。

VisualStudioCodeCredential

通过“Azure 帐户”扩展登录到Visual Studio Code的 Azure 用户进行身份验证。

这是一个已知问题,即此凭据不适用于 0.9.11 以上的 Azure 帐户扩展版本。 正在对此问题进行长期修复。 同时,请考虑使用 AzureCliCredential进行身份验证。

WorkloadIdentityCredential

使用 Azure Active Directory 工作负载标识进行身份验证。

工作负载标识身份验证是 Azure 中的一项功能,它允许在虚拟机 (VM) 上运行的应用程序访问其他 Azure 资源,而无需服务主体或托管标识。 使用工作负载标识身份验证时,应用程序使用自己的标识(而不是共享服务主体或托管标识)对自身进行身份验证。 在后台,工作负载标识身份验证使用服务帐户凭据的概念 (SAC) ,这些凭据由 Azure 自动创建并安全地存储在 VM 中。 通过使用工作负载标识身份验证,可以避免为每个 VM 上的每个应用程序管理和轮换服务主体或托管标识。 此外,由于 SAC 由 Azure 自动创建和管理,因此无需担心存储和保护敏感凭据本身。

WorkloadIdentityCredential 支持在 Azure Kubernetes 上进行 Azure 工作负载标识身份验证,并使用 Azure Kubernetes 环境中可用的服务帐户凭据获取令牌。 有关详细信息,请参阅 此工作负载标识概述