如何在TAI和ACS在SSO期间处理SAML响应之后访问SAML响应



我开发了一个自定义web应用程序(WAR),它需要从请求对象检索SAML响应并从中提取用户配置文件属性

尝试实现以下方法,其中:-OneLogin(身份提供商)发送SAML响应和中继状态-SAML响应由ACS应用程序处理-ACS应用程序将用户重定向到自定义web应用程序(在IdP的RelayState中设置)-然后,该应用程序将从请求中检索SAML响应对象,用用户配置文件属性填充动态缓存,并将用户重定向到主应用程序主页。

目前,当ACS重定向到自定义web应用程序(设置为中继状态)时,SAML响应(一旦由WebSphere TAI和ACS应用程序接收和处理)似乎不可用。是否可以保留SAML响应并将其从ACS应用程序传递给自定义web应用程序?

如有任何帮助/建议,我们将不胜感激。

热烈问候, Ekansh

无法在应用程序中获取原始SamlResponse消息。但是,可以从应用程序中获取SAML令牌(SAML XML文件)。通常,可以使用此SAML令牌通过SOAP安全标头或Http标头进行web服务调用,或者进行WS-Trust调用以将SAML令牌交换为用于下游服务调用的新SAML令牌。您可以进行web服务调用(JAX-WS或JAX-RS)而不是浏览器重定向吗?如果web服务调用对您有效,我可以帮助您使其工作。

保留和传递SAML响应是没有意义的。本质上就像定义的协议一样,一旦用户通过了Authenticated@OneLogin,它就会在SAML响应中向ACS发回SAML令牌。ACS验证SAML令牌,并允许用户继续操作。

现在,如果您正在将用户重定向到自定义web应用程序并希望使用SAML,那么理想情况下,您应该在应用程序中实现SAML服务提供商库,并且您的自定义web应用将充当另一个SAML客户端,在OneLogin中注册。在这种情况下,用户将获得类似SSO的体验,如果在身份提供商处打开SSO(在本例中为OneLogin),因为他在登录ACS时已经对自己进行了身份验证。

最新更新