You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中用Workload Identity Federation替代ClientSecretCredential实现SPN认证?

切换到Workload Identity Federation的Python认证方案

有对应的替代实现,Azure Identity Python库通过支持断言式认证来适配Workload Identity Federation(WIF),只是文档中未直接使用“WIF”这个命名,以下是两种常用方案:

推荐:使用DefaultAzureCredential自动适配

当你的运行环境已配置好WIF所需参数(如AZURE_CLIENT_ID、AZURE_TENANT_ID,以及断言文件路径AZURE_FEDERATED_TOKEN_FILE或直接提供断言内容的AZURE_CLIENT_ASSERTION),DefaultAzureCredential会自动识别并采用WIF认证,无需手动配置复杂逻辑:

from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()

手动控制:使用ClientAssertionCredential

如果需要更精细的断言内容管理,可以直接使用ClientAssertionCredential,传入租户ID、客户端ID和自定义获取的断言内容:

from azure.identity import ClientAssertionCredential
import os

# 自定义获取断言的逻辑,示例为从环境变量指定的文件读取
def fetch_assertion():
    token_file_path = os.environ.get("AZURE_FEDERATED_TOKEN_FILE")
    with open(token_file_path, "r") as f:
        return f.read()

credential = ClientAssertionCredential(
    tenant_id=args.tenant,
    client_id=args.client_id,
    assertion=fetch_assertion()
)

替换原有的ClientSecretCredential代码后,即可完成WIF认证的切换。

内容的提问来源于stack exchange,提问作者steveyB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:52:11