我有一个网站mywebsite.com,用户可以在其中登录。登录是通过将未经身份验证的会话重定向到ssologin.com上的 SSO 提供商来处理的,该提供商验证凭据,然后使用访问令牌重定向回 mywebsite.com 以便它可以创建本地会话。
该网站是一个单页 Web 应用程序,它使用 JavaScript 调用通过 API 网关 3scale 公开的 API。
我想了解的是如何让 3scale 兑现颁发给网站的 OAuth 访问令牌。我猜它应该足够简单,因为 3scale 似乎将此委托给授权 URL,但我不确定这背后的机制以及它是否正在做我期望的事情。
谁能解释我是否 - 以及如何 - 我可以做到这一点?我已经阅读了文档,但我无法理解它,因为它掩盖了在授予 OAuth 访问令牌之后发生的事情,并且它没有涉及可能创建令牌的场景-带(即看不见 3scale)。
我认为我想在这种情况下使用的流程是客户端 Web 应用程序/隐式授权流程,但如果我错了,请纠正我。
我试图破译帮助文件,但我仍然有很多问题:
- 我假设我将 3scale OAuth 登录 URL 配置为与 mywebsite.com 重定向到的 URL 完全相同?或者我是否需要一个不同的页面来处理不同的逻辑,以及 API 调用通常不是交互式/面向用户的事实?
- 用户通过 ssologin.com OAuth 登录页面登录网站后返回的访问令牌是否可用于后续 API 调用,或者 3scale 是否需要自己的令牌,因此需要自己的登录重定向?(是否有状态存储在网关的任何位置?)
- 访问令牌如何传递给 API 调用:作为参数、作为 HTTP 标头或通过其他机制?
实际上我想做的实际上是使用 OpenID Connect 并取回一个 ID 令牌,但 3scale 本身并不支持这一点。我可以用 3scale 做些什么来伪造它并仍然返回一个 ID 令牌,从而有效地使其表现得像 OpenID Connect?