问题描述
在将MSAL库用于Python时,我无法获得访问令牌的到期时间来更改默认值1小时。
我尝试过:
now = datetime.datetime.utcnow()
then = datetime.datetime.utcnow() + datetime.timedelta(minutes=10)
claims = {
"exp": then,}
app = msal.ConfidentialClientApplication(
graph_config["client_id"],authority=graph_config["authority"],client_credential=graph_config["secret"],client_claims=claims)
我尝试将其作为python datetime对象和字符串发送。我尝试将'_min'添加到值中,并且尝试了像文档所说的'now + 10_min'。
无论如何,我的到期时间仍然是:
"expires_in": 3599,"ext_expires_in": 3599,
即一小时
请为所有圣洁的事物所爱,请有人帮助我让这个愚蠢的访问令牌使用更长时间。
解决方法
令牌生存期是由Azure AD https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes#configurable-token-lifetime-properties中的策略管理的,因此您不能在用户级别更改它们(但是管理员可以更改或创建新策略来执行此操作)。出于安全方面的考虑,默认寿命为1小时,除非您有充分的理由进行更改,否则任何应用程序通常都不能轻易管理自己的令牌刷新/续约。