我正在使用IdentityServer4和Oidc-Client 我有令牌生命周期的所有默认设置,并使用了隐式流 有3个令牌寿命 Accesstokenlifetime,IdtokenLifetime和AuthorizationTokenLifetime
我不了解silentrefresh的流程以及如何检查它,我在accesstokenlifetime的生命周期中进行了一些改动,假设它将触发silentrefresh,但它不会触发它。 第二个何时使用IdTokenLifetime及其对授权的影响
答案 0 :(得分:0)
被触发的无提示刷新不取决于任何令牌的隐式生存期。静默刷新由客户端应用程序启动,并且只要您和身份提供者之间存在基于cookie的会话,就可以随时执行。为了重申静默刷新是什么,它是客户端应用程序向身份提供者打开iframe(从用户隐藏)并使用现有的cookie会话进行身份验证并接收新的访问和ID令牌的时间。
关于您为什么使用id令牌以及它如何影响授权的问题,我想说它根本没有。 id令牌仅对 authentication 的过程很重要,而对 authorization 无关。
区别在于,通过授权,客户端在过去的某个时候被授予了用户权限,而该权限尚未被撤销。这意味着,使用刷新令牌,应用程序可以检索访问令牌并代表用户进行呼叫,而无需实际登录用户。通过身份验证,可以确保客户端在身份令牌到期或身份提供者会话到期的持续时间内,用户已执行某种形式的身份验证。
id令牌的到期以某种方式表明身份验证持续多长时间,然后才将用户视为未经身份验证。另外,必须将该字段作为oidc规范的一部分进行验证(我相信由于上述原因),如果没有该字段,您将无法创建有效的ID令牌。