前端的 SiteMinder Web 代理是会话有效的保证 - 您必须通过服务器/网络配置确保您的应用程序在没有首先通过 SiteMinder Web 代理的情况下无法直接访问。
此外,SiteMinder 断言多个标头。SM_USER不应单独使用,因为在某些情况下,当用户实际上没有有效会话时,Web 代理可以断言它。相反,您应该首先查找 的存在(非空白)SM_SERVERSESSIONID,它仅在会话有效时才存在。
最后,我通常尽量避免SM_USER——因为SM_USER实际上根本不是用户属性,而是“用于身份验证的登录标识符”。如果 SiteMinder 通过联合(例如 SAML)或 x509 身份验证对用户进行身份验证,SM_USER则与使用登录表单的情况将大不相同。相反,最好在 SiteMinder 中设置一个作为用户属性的“通用 id”,并在标题中显示为SM_UNIVERSALID. 您的 SiteMinder 管理员将知道如何执行此操作(并且可能已经知道 - 看看您是否已经有SM_UNIVERSALID可用的标题)。
另一项注意事项是,在某些 SiteMinder 配置中,下划线不会出现在标题名称中(在 SiteMinder 中使用下划线称为“旧”标题模式),因此您可能希望使您的应用程序可以根据标题名称进行配置,例如SMSERVERSESSIONID,SMUSER等SMUNIVERSALID。
如果您想以编程方式重新验证会话,可以使用 SiteMinder 代理 API 或 REST API,或者查看我公司的产品“SSO/Rest”,它为 SiteMinder 和其他 SSO 提供者提供了一套全面的统一 REST 接口(http://www.idfconnect.com)。
!
-理查德