如何在siteminder的Spring安全预验证中验证SM_用户头
我正在尝试使用siteminder的预认证安全性创建一个安全的SpringRESTAPI 我已经尝试了一个解决方案,在那里我得到了SM_用户,当我在postman中测试它时,添加了新的标题SM_用户和随机值,它似乎工作得很好 如果您不提供标头,我将收到一个错误org.springframework.security.web.authentication.PreAuthenticatedCredentialsNotFoundException:请求中未找到有效的SM_用户标头如何在siteminder的Spring安全预验证中验证SM_用户头,spring,spring-boot,siteminder,pre-authentication,Spring,Spring Boot,Siteminder,Pre Authentication,我正在尝试使用siteminder的预认证安全性创建一个安全的SpringRESTAPI 我已经尝试了一个解决方案,在那里我得到了SM_用户,当我在postman中测试它时,添加了新的标题SM_用户和随机值,它似乎工作得很好 如果您不提供标头,我将收到一个错误org.springframework.security.web.authentication.PreAuthenticatedCredentialsNotFoundException:请求中未找到有效的SM_用户标头 但我如何才能确保这是
但我如何才能确保这是安全的呢?如果有人知道我的RESTAPI的URL,可以毫无问题地调用它。我应该在spring中检查其他内容还是只有siteminder提供用户身份验证?前端siteminder web代理是会话有效的保证-您必须通过服务器/网络配置确保您的应用程序在未首先通过siteminder web的情况下无法直接访问特工 此外,SiteMinder会断言多个标头
SM_USER
不应单独使用,因为在某些情况下,当用户实际上没有有效会话时,web代理可以断言它。相反,您应该先查找SM_SERVERSESSIONID
是否存在(非空),它仅在会话有效时存在
最后,我通常尽量避免使用SM\u USER
——因为SM\u USER
实际上根本不是用户属性,而是“用于身份验证的登录标识符”。如果SiteMinder通过联合身份验证(如SAML)或x509身份验证对用户进行身份验证,SM_用户
将与使用登录表单时大不相同。相反,在SiteMinder中,最好设置一个作为用户属性的“通用id”,并在标题中显示为SM\u UNIVERSALID
。您的SiteMinder管理员将知道如何做到这一点(并且可能已经知道-看看您是否已经有了SM_UNIVERSALID
标题)
另一个注意事项是,在某些SiteMinder配置中,下划线不会出现在标题名中(在SiteMinder中,使用下划线被称为“遗留”标题模式),因此您可能希望让您的应用程序可以根据标题名进行配置,例如SMSERVERSESSIONID
,SMUSER
,SMUNIVERSALID
等
如果您想以编程方式重新验证会话,可以使用SiteMinder代理API或REST API,或者查看我公司的产品“SSO/REST”,它为SiteMinder和其他SSO提供了一整套统一的REST接口()
嗯
-理查德