【问题标题】:OpenAM receives oAuth2 auth code, but doesnt request access token Invalid Session IdOpenAM 收到 oAuth2 身份验证代码,但未请求访问令牌 Invalid Session Id
【发布时间】:2015-12-17 19:17:48
【问题描述】:

我已经实现了自己的 oAuth2 提供程序服务器(使用 Grails spring security oAuth2 插件),现在正尝试将其连接到 OpenAM。

当我尝试登录时,它会正确重定向到我自己的登录表单,并且在成功完成身份验证后会使用以下 url 重定向回 OpenAM:

http://sso.my-domain.com/openam/XUI/#login/&realm=%myRealm&code=dPPg1g&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l

但是,OpenAM 显示“无法登录”。身份验证代码在 URL 中,因此它应该能够请求访问令牌,所以我去进行了一些调试,发现它甚至没有尝试检索令牌;相关日志如下:

来自 localhost_access_log:

[15/Dec/2015:11:29:17 +0100] "GET /MyOAuthProvider/oauth/authorize?client_id=openAm&scope=read&redirect_uri=http%3A%2F%2Fsso.my-domain.com%3A80%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l HTTP/1.1" 200 901
[15/Dec/2015:11:29:18 +0100] "POST /MyOAuthProvider/oauth/authorize?client_id=openAm&scope=read&redirect_uri=http%3A%2F%2Fsso.my-domain.com%3A80%2Fopenam%2Foauth2c%2FOAuthProxy.jsp&response_type=code&state=rzhjjjl1wpmndz7zfh4gqm1r5k9xi2l HTTP/1.1" 302 -

如您所见,没有调用 /MyOAuthProvider/oauth/token,这是令牌访问点。

来自 /usr/share/tomcat7/openam/openam/debug/debug.log:http://pastebin.com/qivhR9JF(使用 PasteBin,因为它有点太长了)

在本地进行测试时,我能够通过 Postman 的调用获得身份验证代码和令牌,所以这不应该是问题。

我在这里遗漏了什么吗?任何帮助表示赞赏

【问题讨论】:

    标签: grails oauth-2.0 spring-security-oauth2 openam


    【解决方案1】:

    在翻阅 OpenAM 调试日志后,我发现它尝试检索令牌,但收到“连接被拒绝”。看来问题在于我的服务器上的代理和路由。

    由于 openAM 和我的 oAuth 提供程序在同一个 Tomcat 上运行,因此将令牌(和用户数据)网址从 sso.my-domain.com 更改为 localhost:8080 解决了问题

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 2020-11-04
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2013-04-11
      相关资源
      最近更新 更多