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

DefaultAzureCredential 类

public final class DefaultAzureCredential
extends ChainedTokenCredential

DefaultAzureCredential 适用于应用程序最终在 Azure 中运行的大多数方案。 DefaultAzureCredential 将通常用于在部署时进行身份验证的凭据与用于在开发环境中进行身份验证的凭据组合在一起。 DefaultAzureCredential 将按顺序尝试通过以下机制进行身份验证。

![图 1][]

  1. EnvironmentCredential - DefaultAzureCredential 将读取通过环境变量指定的帐户信息,并使用它进行身份验证。
  2. WorkloadIdentityCredential - 如果使用工作负载标识 Webhook 设置的环境变量在 Kubernetes 上部署应用,则 DefaultAzureCredential 将对配置的标识进行身份验证。
  3. ManagedIdentityCredential - 如果应用程序部署到启用了托管标识的 Azure 主机,则 DefaultAzureCredential 将使用该帐户进行身份验证。
  4. IntelliJCredential - 如果已通过 [用于 IntelliJ 的 Azure 工具包][] 进行身份验证,则 DefaultAzureCredential 将使用该帐户进行身份验证。
  5. AzureCliCredential - 如果已通过 Azure CLI az login 命令对帐户进行身份验证,则 DefaultAzureCredential 将使用该帐户进行身份验证。
  6. AzurePowerShellCredential - 如果已通过 [Azure Power Shell][] Az Login 命令对帐户进行身份验证,则 DefaultAzureCredential 将使用该帐户进行身份验证。
  7. 如果无法创建上述任何凭据,则失败。

有关详细信息,请参阅 [默认 Azure 凭据身份验证文档][]。

配置 DefaultAzureCredential

DefaultAzureCredential 通过 或 环境变量上的 DefaultAzureCredentialBuilder setter 支持一组配置。

  1. 设置环境变量 AZURE_CLIENT_IDAZURE_CLIENT_SECRET/AZURE_CLIENT_CERTIFICATE_PATHAZURE_TENANT_ID 会将 DefaultAzureCredential 配置为作为值指定的服务主体进行身份验证。
  2. 在生成器或环境变量上设置 managedIdentityClientId(String clientId) AZURE_CLIENT_ID将 DefaultAzureCredential 配置为作为用户定义的托管标识进行身份验证,而将其留空则将其配置为作为系统分配的托管标识进行身份验证。
  3. 生成器或环境变量AZURE_TENANT_ID上的 设置tenantId(String tenantId)将配置 DefaultAzureCredential 以向特定租户进行身份验证,以便Visual Studio Code和 IntelliJ IDEA。

示例:构造 DefaultAzureCredential

以下代码示例演示如何创建 DefaultAzureCredential,并使用 DefaultAzureCredentialBuilder 对其进行配置。 创建此凭据后,它可能会作为“credential”参数传递到许多 Azure SDK for Java 客户端生成器的生成器中。

TokenCredential defaultAzureCredential = new DefaultAzureCredentialBuilder()
     .build();

示例:使用用户分配的托管标识构造 DefaultAzureCredential

User-Assigned 托管标识 (Azure 中的 UAMI) 是一项功能,可用于在 [Azure Active Directory (Azure AD) ][Azure Active Directory Azure AD] 中创建与一个或多个 Azure 资源关联的标识。 然后,可以使用此标识对各种 Azure 服务和资源进行身份验证和授权访问。 以下代码示例演示如何创建一个 DefaultAzureCredential,以面向用户分配的托管标识,并使用 DefaultAzureCredentialBuilder 对其进行配置。 创建此凭据后,它可能会作为“credential”参数传递到许多 Azure SDK for Java 客户端生成器的生成器中。

TokenCredential dacWithUserAssignedManagedIdentity = new DefaultAzureCredentialBuilder()
     .managedIdentityClientId("<Managed-Identity-Client-Id")
     .build();

[图 1]:[用于 IntelliJ 的 Azure 工具包]: https://learn.microsoft.com/azure/developer/java/toolkit-for-intellij/ [Azure Power Shell]: https://learn.microsoft.com/powershell/azure/?view=azps-9.4.0 [默认 azure 凭据身份验证文档]: https://aka.ms/azsdk/java/identity/defaultazurecredential/docs [Azure Active Directory Azure AD]: https://learn.microsoft.com/azure/active-directory/fundamentals/

方法继承自 ChainedTokenCredential

方法继承自 java.lang.Object

适用于