6.4. 离线访问
在 离线访问 登录过程中,客户端应用程序会请求离线令牌,而不是刷新令牌。客户端应用保存了这个离线令牌,并可在用户注销时使用它来登录。如果您的应用程序需要代表用户执行离线操作,则此操作很有用。例如,常规数据备份。
客户端应用负责保留存储中的离线令牌,然后使用它从 Red Hat Single Sign-On 服务器检索新的访问令牌。
刷新令牌和离线令牌之间的区别是离线令牌永远不会过期,且不受 SSO Session Idle
超时和 SSO Session Max
lifespan 的影响。在用户注销或服务器重新启动后,离线令牌有效。您必须至少每 30 天或离线 会话会话 Idle 的值为一次刷新令牌操作。
如果您启用 Offline Session Max Limited,则在 60 天后离线令牌过期,即使您使用离线令牌进行刷新令牌操作。您可以在管理控制台中更改此值( Offline Session Max )。
如果启用 Revoke Refresh Token 选项,则只可以使用每个离线令牌。刷新后,您必须从刷新响应存储新的离线令牌,而不是上一个令牌。
用户可以查看和撤销 Red Hat Single Sign-On 在 用户帐户控制台 中授予的离线令牌。管理员可以在 Consents
选项卡中为单独的用户撤销离线令牌。管理员可以查看各个客户端"离线 访问"选项卡中发布的所有离线
令牌。管理员可以通过设置撤销 策略 来撤销 离线令牌。
若要发出离线令牌,用户必须拥有域级 offline_access
角色的角色映射。客户端也必须在其范围内拥有该角色。客户端必须添加 offline_access
客户端范围作为 可选客户端范围
到角色,该范围是默认完成的。
在向红帽单点登录发送授权请求时,客户端可以通过添加参数 scope=offline_access
来请求离线令牌。当您用来访问应用程序的安全 URL (如 http://localhost:8080/customer-portal/secured?scope=offline_access)时,Red Hat Single Sign-On OIDC 客户端适配器会自动添加这个参数。如果您在身份验证请求正文中包含 scope=offline_access
,则 Direct Access Grant 和 Service Account 支持离线令牌。