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

CertificateCredential 类

使用证书作为服务主体进行身份验证。

证书必须具有 RSA 私钥,因为此凭据使用 RS256 对断言进行签名。 有关配置证书身份验证的详细信息,请参阅 Azure Active Directory 文档

继承
azure.identity._internal.client_credential_base.ClientCredentialBase
CertificateCredential

构造函数

CertificateCredential(tenant_id: str, client_id: str, certificate_path: str | None = None, **kwargs: Any)

参数

tenant_id
str
必需

服务主体租户的 ID。 也称为其“目录”ID。

client_id
str
必需

服务主体的客户端 ID

certificate_path
str
默认值: None

PEM 或 PKCS12 格式的证书文件的可选路径,包括私钥。 如果未提供,则需要 certificate_data

authority
str

Azure Active Directory 终结点的颁发机构,例如“login.microsoftonline.com”,即 Azure 公有云 (的颁发机构,这是默认) 。 AzureAuthorityHosts 定义其他云的颁发机构。

certificate_data
bytes

PEM 或 PKCS12 格式的证书字节数,包括私钥

password
strbytes

证书的密码。 如果是 unicode 字符串,它将编码为 UTF-8。 如果证书需要其他编码,请改为传递适当编码的字节。

send_certificate_chain
bool

如果为 True,则凭据将在每个令牌请求的 JWT 的 x5c 标头中发送公共证书链。 这是使用者名称/颁发者 (SNI) 身份验证所必需的。 默认为 False。

cache_persistence_options
TokenCachePersistenceOptions

永久性令牌缓存的配置。 如果未指定,凭据将在内存中缓存令牌。

disable_instance_discovery
bool

确定尝试进行身份验证时是否执行实例发现。 将其设置为 true 将完全禁用实例发现和颁发机构验证。 此功能适用于无法访问元数据终结点的方案,例如在私有云或 Azure Stack 中。 实例发现过程需要从 https://login.microsoft.com/ 中检索颁发机构元数据以验证颁发机构。 通过将此项设置为 True,将禁用颁发机构的验证。 因此,确保配置的颁发机构主机有效且可信至关重要。

additionally_allowed_tenants
List[str]

除了指定凭据可能为其获取令牌的指定“tenant_id”之外,还指定租户。 添加通配符值“*”以允许凭据为应用程序可以访问的任何租户获取令牌。

示例

创建 CertificateCredential。


   from azure.identity import CertificateCredential

   credential = CertificateCredential(
       tenant_id="<tenant_id>",
       client_id="<client_id>",
       certificate_path="<path to PEM/PKCS12 certificate>",
       password="<certificate password if necessary>",
   )

   # Certificate/private key byte data can also be passed directly
   credential = CertificateCredential(
       tenant_id="<tenant_id>",
       client_id="<client_id>",
       certificate_data=b"<cert data>",
   )

方法

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

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

enable_cae
bool

指示是否为请求的令牌启用持续访问评估 (CAE) 。 默认为 False。

返回

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

返回类型

例外

凭据无法尝试身份验证,因为它缺少所需的数据、状态或平台支持

身份验证失败。 错误的 message 属性提供了一个原因。