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

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) 参数配置此默认行为。

继承
azure.identity.aio._credentials.chained.ChainedTokenCredential
DefaultAzureCredential

构造函数

DefaultAzureCredential(**kwargs: Any)

参数

authority
str

Azure Active Directory 终结点的颁发机构(例如“login.microsoftonline.com”)是 Azure 公有云 (默认) 。 AzureAuthorityHosts 定义其他云的颁发机构。 托管标识会忽略这一点,因为它们驻留在单个云中。

exclude_workload_identity_credential
bool

是否从凭据中排除工作负载标识。 默认为 False

exclude_developer_cli_credential
bool

是否从凭据中排除Azure Developer CLI。 默认为 False

exclude_cli_credential
bool

是否从凭据中排除 Azure CLI。 默认为 False

exclude_environment_credential
bool

是否从凭据中排除环境变量配置的服务主体。 默认为 False

exclude_powershell_credential
bool

是否排除Azure PowerShell。 默认为 False

exclude_visual_studio_code_credential
bool

是否从 VS Code 中排除存储的凭据。 默认为 True

exclude_managed_identity_credential
bool

是否从凭据中排除托管标识。 默认为 False

exclude_shared_token_cache_credential
bool

是否排除共享令牌缓存。 默认为 False

managed_identity_client_id
str

用户分配的托管标识的客户端 ID。 默认值为环境变量AZURE_CLIENT_ID的值(如果有)。 如果未指定,将使用系统分配的标识。

workload_identity_client_id
str

分配给 Pod 的标识的客户端 ID。 默认值为环境变量AZURE_CLIENT_ID的值(如果有)。 如果未指定,将使用 Pod 的默认标识。

workload_identity_tenant_id
str

的首选 WorkloadIdentityCredential租户。 默认值为环境变量AZURE_TENANT_ID的值(如果有)。

shared_cache_username
str

的首选用户名 SharedTokenCacheCredential。 默认值为环境变量AZURE_USERNAME的值(如果有)。

shared_cache_tenant_id
str

的首选 SharedTokenCacheCredential租户。 默认值为环境变量AZURE_TENANT_ID的值(如果有)。

visual_studio_code_tenant_id
str

使用 VisualStudioCodeCredential进行身份验证时要使用的租户 ID。 在 VS Code 的用户设置中默认为“Azure:租户”设置,或者,当该设置没有值时,则为仅支持 Azure Active Directory 工作或学校帐户的“组织”租户。

process_timeout
int

用于运行子流程的开发人员凭据 ((例如 AzureCliCredential、AzurePowerShellCredential) )的超时(以秒为单位)。 默认为 10 秒。

示例

创建 DefaultAzureCredential。


   from azure.identity.aio import DefaultAzureCredential

   credential = DefaultAzureCredential()

方法

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

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

返回

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

返回类型

例外

身份验证失败。 异常具有一个 消息 属性,其中列出了每次身份验证尝试及其错误消息。