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

如何使用Azure Python SDK获取ClientSecretCredential的令牌过期时间?

获取ClientSecretCredential令牌过期时间的方法

你可以通过以下两种方式获取令牌的过期时间:

方法一:主动调用get_token获取令牌并查看过期时间

ClientSecretCredential 提供了 get_token 方法可直接获取令牌对象,该对象包含 expires_on 属性(Unix时间戳格式),可转换为可读的日期时间格式。

from azure.identity import ClientSecretCredential
from datetime import datetime

# 补充必填的初始化参数
token_credential = ClientSecretCredential(
    tenant_id="你的租户ID",
    client_id="你的客户端ID",
    client_secret="你的客户端密钥"
)

# 指定存储服务对应的scope,不同Azure服务需要调整scope值
token = token_credential.get_token("https://storage.azure.com/.default")

# 转换为可读的日期时间格式
expires_datetime = datetime.fromtimestamp(token.expires_on)
print(f"令牌过期时间:{expires_datetime}")

方法二:包装凭据类,拦截令牌获取过程

如果想在 BlobServiceClient 调用过程中自动记录令牌过期时间,可以自定义一个凭据包装类,重写 get_token 方法来输出过期时间。

from azure.identity import ClientSecretCredential
from azure.storage.blob import BlobServiceClient
from datetime import datetime

class CredentialWithExpiryLogging(ClientSecretCredential):
    def get_token(self, *scopes, **kwargs):
        token = super().get_token(*scopes, **kwargs)
        expires_datetime = datetime.fromtimestamp(token.expires_on)
        print(f"当前令牌过期时间:{expires_datetime}")
        return token

# 使用包装后的凭据实例
token_credential = CredentialWithExpiryLogging(
    tenant_id="你的租户ID",
    client_id="你的客户端ID",
    client_secret="你的客户端密钥"
)

blob_service_client = BlobServiceClient(account_url="你的存储账户URL", credential=token_credential)
# 调用BlobServiceClient的任意方法时,会自动触发令牌获取并打印过期时间
container_client = blob_service_client.get_container_client("你的容器名称")
list(container_client.list_blobs())

注意事项

  • ClientSecretCredential 初始化必须传入 tenant_id、client_id、client_secret 三个必填参数,你提供的代码中缺少这些参数,需要补充。
  • 不同Azure服务对应的scope不同,存储服务的scope为 https://storage.azure.com/.default,其他服务需参考官方文档调整。
  • 凭据会自动缓存未过期的令牌,多次调用 get_token 若令牌未过期,返回的是同一个令牌实例,过期时间不会变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:27:33