【问题标题】:spring security openid connect request for access token implementation doesn't align cas api requirement访问令牌实现的spring security openid连接请求不符合cas api要求
【发布时间】:2021-08-08 16:55:58
【问题描述】:

我正在通过授权代码流的 openid 连接将 Spring Security 与 CAS 集成。根据openid连接协议,有以下步骤:

  1. ....
  2. 浏览器从 OpenID Provider 获取身份验证和代码
  3. 浏览器将代码发送给客户端
  4. 客户端向 OpenID 提供者发出令牌请求以获取访问令牌。
  5. ....

问题发生在第 4 步。Spring Security 发出请求并将 grant_type、代码信息放入正文而不是 url。但 CAS 要求将代码信息放入 url。 [CAS API for Authorization Code]

有没有人遇到过这种情况?任何建议表示赞赏

【问题讨论】:

    标签: java spring-security openid-connect cas


    【解决方案1】:

    您可以在初始身份验证请求期间使用 response_mode 参数控制将代码传递给客户端的方式。

    它指定了用于将生成的授权代码发送回您的应用程序的方法。可以是 form_postfragment。对于 Web 应用程序,我们建议使用 response_mode=form_post,以确保最安全地将令牌传输到您的应用程序。

    【讨论】:

    • 感谢您回答这个问题。我只是使用 response_mode=form_post 进行测试,并且在步骤 2 中通过 CAS 重定向后参数被放弃。因此以下步骤仍然以相同的方式出现错误。如果我犯了任何错误,请纠正我。
    • 尝试将其设置为 form_post=fragment ,然后它将在 URL 中而不是请求正文中传递(如果支持)
    猜你喜欢
    • 2013-02-17
    • 2018-06-12
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2019-12-06
    • 2017-04-06
    • 2012-08-04
    相关资源
    最近更新 更多