我有一个 Restful Java Web 应用程序,将部署到许多不同的环境(在我的控制范围之外),这些环境将使用 SAML 2.0 SSO 解决方案。
我的应用程序(我认为是“服务提供商”)需要存储用户生成的状态,并使用内部业务逻辑来确定允许哪些用户查看或更新其他用户的数据。为了使其发挥作用,我们需要知道用户是谁,以及用户属于哪些组。但我如何获得这些信息呢?
理想情况下,我的 Web 应用程序与 SSO 无关,并且会在 http 请求中查找一些可配置的关键标头来获取此信息,例如请求中可以解析的 SAML 令牌,或者可能是特定于我的“服务提供商”的一些自定义标头。
非常感谢
您是对的,您的应用程序是服务提供商,您将有一个外部身份提供商 (IdP) 进行身份验证。
基本上,您需要向 IdP 发出身份验证请求(通过前端通道 HTTP POST 或后端通道 SOAP/无论它们支持什么),并使用来自 IdP 的authenticationResponse 来决定他们是否是他们所说的人。通常,您应该能够从 authnResponse 获取主题主体(即用户名)和任何组成员身份,但是其具体工作方式将取决于 IdP 的配置或未配置的操作。
在执行此操作之前,您需要与 IdP 交换 SAML 元数据(这通常是向 IdP 注册为 SP 的一部分),这为双方提供了用于签名和验证请求的公共 X509 证书等信息。
有一个很好的 Spring 库来支持 SAML SP,http://docs.spring.io/autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle http://docs.spring.io/autorepo/docs/spring-security-saml/1.0.x-SNAPSHOT/reference/htmlsingle
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)