Security 如何在长时间运行的后台进程中正确使用访问令牌?

Security 如何在长时间运行的后台进程中正确使用访问令牌?,security,keycloak,openid-connect,Security,Keycloak,Openid Connect,我们正在寻找一些关于如何在超过令牌到期时间的长时间运行的后台进程中使用访问令牌的建议。我们正在使用带有OpenId Connect的KeyClope,我们希望遵守该标准。如果必要的话,可以稍微弯曲一点,但不要打翻它 用例: 用户使用其访问令牌调用服务。该服务启动一个调用其他服务的长时间运行的后台进程。访问令牌被发送到其他服务,以便授权请求并将操作与用户关联(例如,“更改者”)。后台处理可能需要几天甚至几周的时间 有什么想法吗?提前谢谢 您需要具有脱机访问范围的刷新令牌。该刷新令牌永不过期,用于在

我们正在寻找一些关于如何在超过令牌到期时间的长时间运行的后台进程中使用访问令牌的建议。我们正在使用带有OpenId Connect的KeyClope,我们希望遵守该标准。如果必要的话,可以稍微弯曲一点,但不要打翻它

用例: 用户使用其访问令牌调用服务。该服务启动一个调用其他服务的长时间运行的后台进程。访问令牌被发送到其他服务,以便授权请求并将操作与用户关联(例如,“更改者”)。后台处理可能需要几天甚至几周的时间


有什么想法吗?提前谢谢

您需要具有脱机访问范围的刷新令牌。该刷新令牌永不过期,用于在旧的访问令牌过期时获取新的访问令牌

要从KeyClope获得具有脱机\u访问权限的刷新令牌,用户需要具有脱机\u访问角色,并且您应该将“脱机\u访问”添加到请求的作用域中

有关这方面的更多信息:


另一个选项是客户端凭据流,但您在令牌中没有用户数据

我们对此进行了尝试,但这种方法有一些缺点:1)使用脱机令牌的客户端需要与登录的客户端相同2)我们不希望更新角色或属性3)脱机令牌也有过期时间4)如何识别哪个脱机令牌属于哪个后台进程?5) 我们观察到,当Key斗篷必须处理许多脱机令牌(=许多后台进程实例)1)客户机还是用户时,它会出现性能问题?两者相同。3)脱机令牌没有到期日。如果您正确配置了所有内容,则令牌中的到期日为0。您的用户是否具有脱机访问角色?您是否在令牌请求的作用域中发送了脱机\u访问?1)我说的是需要随请求一起传递的客户端\u id。如果客户机B尝试刷新已提供给客户机a的令牌,它将收到“无效授权”错误。3)对不起,我错了。脱机令牌的exiry实际上是0。