Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在siteminder的Spring安全预验证中验证SM_用户头_Spring_Spring Boot_Siteminder_Pre Authentication - Fatal编程技术网

如何在siteminder的Spring安全预验证中验证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_用户标头 但我如何才能确保这是

我正在尝试使用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接口()

-理查德