你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
DefaultAzureCredential 类
能够处理大多数 Azure SDK 身份验证方案的默认凭据。
它使用的标识取决于环境。 当需要访问令牌时,它会依次使用这些标识请求访问令牌,并在提供令牌时停止:
由环境变量配置的服务主体。 有关详细信息,请参阅 EnvironmentCredential 。
WorkloadIdentityCredential 如果环境变量配置由 Azure 工作负载标识 Webhook 设置。
Azure 托管标识。 有关详细信息,请参阅 ManagedIdentityCredential 。
仅限 Windows:已使用 Microsoft 应用程序(如 Visual Studio)登录的用户。 如果缓存中有多个标识,则使用环境变量
AZURE_USERNAME
的值来选择要使用的标识。 有关详细信息,请参阅 SharedTokenCacheCredential 。当前登录到 Azure CLI 的标识。
当前登录到Azure PowerShell的标识。
当前登录到Azure Developer CLI的标识。
可以使用 关键字 (keyword) 参数配置此默认行为。
- 继承
-
azure.identity._credentials.chained.ChainedTokenCredentialDefaultAzureCredential
构造函数
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
要包含在令牌请求中的可选租户。
返回
具有所需范围的访问令牌。
返回类型
例外
身份验证失败。 异常具有一个 消息 属性,其中列出了每个身份验证尝试及其错误消息。