你当前正在访问 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._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_managed_identity_credential
bool

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

exclude_powershell_credential
bool

是否排除Azure PowerShell。 默认为 False

exclude_visual_studio_code_credential
bool

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

exclude_shared_token_cache_credential
bool

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

exclude_interactive_browser_credential
bool

是否排除交互式浏览器身份验证 (请参阅 InteractiveBrowserCredential) 。 默认值为 True

interactive_browser_tenant_id
str

通过 InteractiveBrowserCredential对用户进行身份验证时要使用的租户 ID。 默认为环境变量AZURE_TENANT_ID的值(如果有)。 如果未指定,用户将在其主租户中进行身份验证。

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的值(如果有)。

interactive_browser_client_id
str

要用于交互式浏览器凭据的客户端 ID。 如果未指定,用户将向 Azure 开发应用程序进行身份验证。

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 import DefaultAzureCredential

   credential = DefaultAzureCredential()

方法

close

关闭链中每个凭据的传输会话。

get_token

请求 范围的访问令牌。

Azure SDK 客户端会自动调用此方法。

close

关闭链中每个凭据的传输会话。

close() -> None

get_token

请求 范围的访问令牌。

Azure SDK 客户端会自动调用此方法。

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

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

返回

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

返回类型

例外

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