如何延长MSAL Python库的访问令牌到期时间?

问题描述

在将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,

即一小时

文档:https://msal-python.readthedocs.io/en/latest/#publicclientapplication-and-confidentialclientapplication

请为所有圣洁的事物所爱,请有人帮助我让这个愚蠢的访问令牌使用更长时间。

解决方法

令牌生存期是由Azure AD https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-configurable-token-lifetimes#configurable-token-lifetime-properties中的策略管理的,因此您不能在用户级别更改它们(但是管理员可以更改或创建新策略来执行此操作)。出于安全方面的考虑,默认寿命为1小时,除非您有充分的理由进行更改,否则任何应用程序通常都不能轻易管理自己的令牌刷新/续约。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...