在 OAuth 授权代码授权流程中从 CAS(PingFederate) 重定向,在 OAuth 客户端上创建新会话

Redirect from CAS(PingFederate) in an OAuth auth code grant flow creating a new session on the OAuth client

我有一个 Web 应用程序,它的行为类似于 OAuth 客户端,以便从 PingFederate(此处充当 CAS+IDP)获取访问令牌。 Web 应用程序会话由附加在与 Web 应用程序关联的 url 中的 JSESSION ID 管理。 Post 登录,我们的 Web 应用程序启动授权代码授权流程(Spring 安全过滤器)以便为经过身份验证的用户获取访问令牌。从 PingFederate 重定向时,没有 JSESSIONID 附加到重定向 url(因为 PingFed 在这里不知道 JSESSIONIds)。这会导致网络应用程序上的重定向 uri 启动新会话。

我不希望网络应用程序重定向 uri 生成新的 Tomcat 会话。在建筑上,这里似乎有些臭味。我想检查一下避免生成新会话的可能解决方案是什么。

如果需要,我可以分享代码。请教

谢谢!

当您的客户端应用程序将其 OAuth 授权请求发送到 PingFederate 时,您可以包含一个 redirect_uri 查询字符串参数来告诉它如何重定向回您的应用程序。如果您能够在该值中包含 JSESSIONID,PingFederate 会将其包含在重定向中。

鉴于 JSESSIONID 的值是动态的,您可能需要在 PingFederate 的客户端上配置的 Redirection URIs 中包含通配符 (*)管理控制台。

详情请见:

假设您正在实施三足式 OAuth 流程,请确保您的架构在此处明确定义了 3 方 - a) 资源所有者,b) 消费者和 c) 服务提供商。 Here is the diagram illustrating the 3-legged OAuth flow. For the Redirect URL in OAuth flow read here. The auth code grant is here with examples.