SSO 会话超时工作不正常
SSO Session Timeout works incorrectly
我正在尝试使用 WSO IS 5.1.0 配置会话超时。
我有一个服务提供商,它的会话超时为 10 分钟。
我已经在 WSO2 中将 SSO sesison timeot 配置为 10 分钟,在 Resident Identity Provider 部分使用 Managment console。
不知道为什么,全局配置(<IS_HOME>/repository/conf/identity/identity.xml file under the <TimeConfig> element
)不起作用。
本地会话超时后,用户被重定向到 SSO 登录页面,因此看起来全局会话已失效。但是,如果您(再次)在浏览器中键入应用程序 url,用户将被重定向到登录页面,自动重新进行身份验证,并重定向到上次访问的页面。
为什么用户第一次进入 SSO 登录页面,之后却没有?
预期行为是用户不应在全局会话过期后重新进行身份验证。
所以,场景是:
- 用户转到服务提供商的主页并被重定向到 SSO 登录页面
- 用户在 SSO 登录页面上登录
- 一段时间后 SSO 会话到期;
- 服务提供者的会话也过期
- 用户转到某个服务提供商的页面并被重定向到 SSO 登录页面(此时似乎以某种方式重新创建了 SSO 会话)
- 用户再次尝试访问服务提供商的页面,他神奇地重新获得了身份验证(因为重新创建了会话)。
如果你至少评论一下这个流程,我将不胜感激,我现在确定我是否理解它是如何工作的
<IS_HOME>/repository/conf/identity/identity.xml
文件中的会话超时全局配置可从管理控制台覆盖。
从管理控制台配置会话超时后,该会话超时将应用于已登录的租户,并且优先于全局配置。
所以在新的 IS 5.1.0 包中,如果您使用 'admin' 用户登录管理控制台并且配置了 'Idle Session Time Out' 的 'Resident Identity Provider' 您已经更改了标识为 'carbon.super' 的超级租户的会话时间。
因此,当此租户中配置的服务提供商参与此租户用户的已验证会话时,会话超时将是您刚刚配置的值。
理想情况下,这意味着,在 IS 5.1.0 中,我们无法根据服务提供商在身份提供商之外配置会话时间。它只能为每个租户更改。
此外,管理控制台中'Resident Identity Provider'配置的'Idle Session Time Out'表示认证会话的会话超时,创建对于最终用户,他们通过某种身份验证协议(SAML、OpenID、OpenIDConnect 等)对服务提供商应用程序进行身份验证。这与管理控制台登录会话不同。
我不是很清楚你使用的两个术语,'local session time out'和'global session timeout'。但希望我上面的解释能帮到你。
有关 WSO2 IS 5.1.0 中如何管理 SSO 会话的更多信息,请参阅 [1]。
[1] http://malithiedirisinghe.blogspot.com/2016/01/how-to-manage-authenticated-session-in.html
我用WSO2 IS 5.1.0版本测试过,你提到的问题确实存在。在进行过程中,我注意到这也是由于 IDENTITY-4537 中提到的时间戳计算逻辑问题引起的。这已在即将发布的版本 WSO2 IS 5.2.0
中修复
我正在尝试使用 WSO IS 5.1.0 配置会话超时。
我有一个服务提供商,它的会话超时为 10 分钟。
我已经在 WSO2 中将 SSO sesison timeot 配置为 10 分钟,在 Resident Identity Provider 部分使用 Managment console。
不知道为什么,全局配置(<IS_HOME>/repository/conf/identity/identity.xml file under the <TimeConfig> element
)不起作用。
本地会话超时后,用户被重定向到 SSO 登录页面,因此看起来全局会话已失效。但是,如果您(再次)在浏览器中键入应用程序 url,用户将被重定向到登录页面,自动重新进行身份验证,并重定向到上次访问的页面。 为什么用户第一次进入 SSO 登录页面,之后却没有? 预期行为是用户不应在全局会话过期后重新进行身份验证。
所以,场景是:
- 用户转到服务提供商的主页并被重定向到 SSO 登录页面
- 用户在 SSO 登录页面上登录
- 一段时间后 SSO 会话到期;
- 服务提供者的会话也过期
- 用户转到某个服务提供商的页面并被重定向到 SSO 登录页面(此时似乎以某种方式重新创建了 SSO 会话)
- 用户再次尝试访问服务提供商的页面,他神奇地重新获得了身份验证(因为重新创建了会话)。
如果你至少评论一下这个流程,我将不胜感激,我现在确定我是否理解它是如何工作的
<IS_HOME>/repository/conf/identity/identity.xml
文件中的会话超时全局配置可从管理控制台覆盖。
从管理控制台配置会话超时后,该会话超时将应用于已登录的租户,并且优先于全局配置。
所以在新的 IS 5.1.0 包中,如果您使用 'admin' 用户登录管理控制台并且配置了 'Idle Session Time Out' 的 'Resident Identity Provider' 您已经更改了标识为 'carbon.super' 的超级租户的会话时间。
因此,当此租户中配置的服务提供商参与此租户用户的已验证会话时,会话超时将是您刚刚配置的值。
理想情况下,这意味着,在 IS 5.1.0 中,我们无法根据服务提供商在身份提供商之外配置会话时间。它只能为每个租户更改。 此外,管理控制台中'Resident Identity Provider'配置的'Idle Session Time Out'表示认证会话的会话超时,创建对于最终用户,他们通过某种身份验证协议(SAML、OpenID、OpenIDConnect 等)对服务提供商应用程序进行身份验证。这与管理控制台登录会话不同。
我不是很清楚你使用的两个术语,'local session time out'和'global session timeout'。但希望我上面的解释能帮到你。
有关 WSO2 IS 5.1.0 中如何管理 SSO 会话的更多信息,请参阅 [1]。
[1] http://malithiedirisinghe.blogspot.com/2016/01/how-to-manage-authenticated-session-in.html
我用WSO2 IS 5.1.0版本测试过,你提到的问题确实存在。在进行过程中,我注意到这也是由于 IDENTITY-4537 中提到的时间戳计算逻辑问题引起的。这已在即将发布的版本 WSO2 IS 5.2.0
中修复