我有一个现有的金融应用程序,它使用 API 网关对基于 Web 的用户进行身份验证。该网关为用户维护一个安全会话,并将 SOAP 调用代理到 WebSphere 框。它将签名的 SAML 断言添加到这些 SOAP 调用中。
WebSphere 上部署了一系列 JAX-WS 服务,这些服务受到 WebSphere 策略的保护以使用 SAML 断言。然后将 SAML 断言中指定的身份和组成员身份传播到服务调用的 WebSphere 安全上下文。一切都很好,所有的安全逻辑都是纯粹通过配置来完成的。
新的需求现在要求我们将 API 网关中的 sessionId 一直传播到 WebSphere 以及其他地方。这是出于可追溯性的原因。
显然,我们可以更改所有服务的 WSDL 以包括一些元数据字段,但这是一个很大的更改,并且需要非常广泛的测试。
我希望有一种方法可以将一些任意属性从 SAML 断言(身份和 groupMembership 除外)映射到 WebSphere 安全上下文。甚至可以访问(经过身份验证的)JAX-WS 服务中的 SAML XML。
有人做过吗?