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

identity 包

Azure SDK 客户端的凭据。

aio

异步 Azure SDK 客户端的凭据。

AuthenticationRecord

经过身份验证的用户的非机密帐户信息

此类启用 DeviceCodeCredentialInteractiveBrowserCredential 访问以前缓存的身份验证数据。 应用程序不应构造此类的实例。 他们应改为从凭据的 身份验证 方法(例如 authenticate)获取一个。 有关更多详细信息,请参阅user_authentication示例。

AuthenticationRequiredError

需要交互式身份验证才能获取令牌。

只有配置为不根据需要自动提示用户交互的交互式用户凭据才会引发此错误。 其属性提供身份验证可能需要的其他信息。 control_interactive_prompts示例演示如何通过调用凭据的“authenticate”方法处理此错误。

AuthorizationCodeCredential

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

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

AzureAuthorityHosts

Azure SDK 客户端的凭据。

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

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

CredentialUnavailableError

凭据未尝试进行身份验证,因为所需的数据或状态不可用。

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

DeviceCodeCredential

通过设备代码流对用户进行身份验证。

调用 时 get_token ,此凭据将从 Azure Active Directory 获取验证 URL 和代码。 用户必须浏览到 URL,输入代码,并使用 Azure Active Directory 进行身份验证。 如果用户身份验证成功,则凭据会收到访问令牌。

此凭据主要用于在没有 Web 浏览器的环境中对用户进行身份验证,例如 SSH 会话。 如果 Web 浏览器可用, InteractiveBrowserCredential 更方便,因为它会自动打开浏览器到登录页。

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 公有云的颁发机构,如果未提供任何值,则为默认值。

具有用户名和密码的用户:

  • AZURE_CLIENT_ID:应用程序的客户端 ID

  • AZURE_USERNAME:用户名 (通常为电子邮件地址)

  • AZURE_PASSWORD:该用户的密码

  • AZURE_TENANT_ID: (服务主体租户的可选) ID。 也称为其“目录”ID。 如果未提供,则默认为“组织”租户,该租户仅支持 Azure Active Directory 工作或学校帐户。

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

InteractiveBrowserCredential

打开浏览器以交互方式对用户进行身份验证。

get_token 打开浏览器到 Azure Active Directory 提供的登录 URL,并使用 PKCE (Code Exchange 的证明密钥) 内部对授权代码流中的用户进行身份验证,以保护代码。

KnownAuthorities

AzureAuthorityHosts 的别名

ManagedIdentityCredential

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

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

OnBehalfOfCredential

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

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

SharedTokenCacheCredential

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

TokenCachePersistenceOptions

用于持久令牌缓存的选项。

大多数凭据接受此类的实例来配置永久性令牌缓存。 默认值将凭据配置为使用与 Microsoft 开发人员工具和 SharedTokenCacheCredential共享的缓存。 若要将凭据的数据与其他应用程序隔离,请指定缓存 的名称

默认情况下,缓存使用当前平台的用户数据保护 API 进行加密,当它不可用时将引发错误。 若要将缓存配置为回退到未加密的文件而不是引发错误,请指定 allow_unencrypted_storage=True

警告

缓存包含身份验证机密。 如果缓存未加密,则保护缓存是

应用程序的责任。 违反其内容将完全入侵帐户。

UsernamePasswordCredential

使用用户名和密码对用户进行身份验证。

通常,Microsoft 不建议使用此类身份验证,因为它比其他身份验证流不安全。

使用此凭据进行身份验证不是交互式的,因此它 与任何形式的多重身份验证或同意提示不兼容。 应用程序必须已获得用户或目录管理员的同意。

此凭据只能对工作和学校帐户进行身份验证;不支持 Microsoft 帐户。 有关帐户类型的详细信息,请参阅 Azure Active Directory 文档

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 环境中可用的服务帐户凭据获取令牌。 有关详细信息,请参阅 此工作负载标识概述