| |||
|
作者:Firdaus Fraz
使用 Oracle WebLogic 部署计划配置 Oracle Identity Manager 11gR2PS1 的会话超时
2014 年 1 月
顾名思义,会话超时就是超过后 Web 应用程序的会话对象就会过期的时间段。超时时段可以是一个固定的时间段(硬超时),也可以是用户不刷新或不请求页面的非活动时间段(软超时)。一旦会话达到超时,用户需要重新验证身份才能访问 Web 应用程序。硬会话超时是为会话 ID 定义好的超时时段,无论用户是否处于活动状态;如果应用程序设定 9 小时的硬会话超时,9 小时后,即使会话仍处于活动状态,也会要求用户重新验证身份。
硬会话超时和软会话超时配置是一项安全控制措施,旨在保护用户会话免受跨站点请求伪造 (CSRF)、会话固定等安全攻击的影响。
可以采用几种方法配置应用程序的硬会话超时和软会话超时。本文主要讨论 Oracle Identity Manager (OIM) 11gR2PS1 版的软会话超时配置。
如果使用访问管理解决方案保护应用程序,则必须通过访问管理层配置应用程序会话超时。
对于独立应用程序(不使用一次性登录),可以通过应用程序部署描述文件(web.xml orweblogic.xml
,如果应用程序部署在 WebLogic 应用服务器中)进行(非活动)会话超时配置,也可以使用 WebLogic 部署计划进行配置。
本文讨论如何使用 WebLogic 部署计划配置 OIM Web 应用程序的会话超时。
OIM 11gR2 PS1 版的会话超时配置在其自助式和系统管理 Web 应用程序的 web.xml 文件中定义。
直接编辑自助式应用程序存档 (oracle.iam.console.identity.self-service.ear
) 和系统管理应用程序存档 (oracle.iam.console.identity.sysadmin.ear
) 中的 web.xml 文件,然后重新部署应用程序,即可更改会话超时。
然而,由于此方法需要操纵应用程序存档,所以不推荐。我们必须改用 WebLogic 部署计划执行会话超时配置。
可在以下路径找到 web.xml(sysadmin.ear 在类似的路径下):
oracle.iam.console.identity.self-service.ear\oracle.iam.console.identity.self-service.war\WEB-INF\
会话超时配置如下所示。值“15”指分钟数。sysadmin.ear 中的默认值为 35 分钟。
<session-config> <session-timeout>15</session-timeout> </session-config>
J2EE 应用程序的会话超时可在其部署描述文件 web.xml 或 weblogic.xml 中配置。web.xml 中的配置优先于 weblogic.xml 中的配置。
WebLogic 允许在部署计划 xml 文件中定义环境相关的参数,因此如果参数值在开发环境、测试环境和生产环境中各不相同,您无需更改应用程序存档。只需为每个执行环境提供不同的部署计划 xml。
可以通过 WebLogic 部署计划覆盖应用程序存档的部署描述文件中定义的配置。
可以使用 WebLogic 工具 weblogic.PlanGenerator
或通过 WebLogic 管理控制台生成 WebLogic 部署计划。
您希望通过 WebLogic 部署计划管理的配置必须定义为部署 xml 文件中的变量。这些变量可通过 Weblogic Administration Console 配置。
web.xml 中会话超时的变量名为 session-timeout
(以分钟为单位定义),weblogic.xml 中的变量名为 timeout-secs
(以秒为单位定义)。
默认情况下,如果生成一个 WebLogic 部署计划来配置会话超时,则假定 weblogic.xml 中已经定义了超时,并用通过 WebLogic Administration Console 提供的会话超时的值覆盖 weblogic.xml 中的配置。
但在本例中,因为 OIM 应用程序在 J2EE 应用程序级别(即在 web.xml 文件中)定义超时,所以我们将自定义用 WebLogic 部署 Plan.xml 文件覆盖 web.xml 配置。由于 web.xml 中的配置以分钟为单位,因此使用这个自定义部署计划时,通过 WebLogic Administration Console 提供的会话超时值被视作以分钟为单位。
以下步骤将指导您生成 WebLogic 部署计划 (Plan.xml),包括会话超时变量配置,以及自定义 Plan.xml 来覆盖 OIM 应用程序 web.xml 文件中的会话超时配置。
WebLogic 部署计划 xml 可以存储在 WebLogic 安装计算机文件系统上的任意位置。
注:这是一个自定义解决方案,OIM 补丁/升级可能会覆盖更改。
oracle.iam.console.identity.self-service.ear
/app/Middleware/Oracle_IDM1/server/apps/Plan.xml
<module-descriptor external="false"> <root-element>web-app</root- element> <uri>WEB-INF/web.xml</uri> <variable-assignment> <name>SessionDescriptor_timeoutSecs_13732841600120</name> <xpath>/web-app/session-config/session-timeout</xpath> <operation>replace</operation> </variable-assignment> </module-descriptor>
oracle.iam.console.identity.sysadmin.ear
Firdaus Fraz 是 Oracle 融合中间件身份管理 A 团队的首席解决方案架构师。她的职责是就实施最佳实践、架构、用例设计和故障排除为 IDM 全球范围的客户和合作伙伴提供指导。