2

甚至对于即将推出的 OAuth 2.1 中的 Angular 等公共客户端应用程序,也建议使用授权代码授权流程。

但是 Angular 应用程序通常是 SPA,这意味着没有内置的服务器端来存储 client_secret。

库“angular-oauth2-oidc”声称支持代码授权流程,但我找不到任何可用的开源解决方案。

尝试过 Vouch Proxy,但它设置了包含 access_token 和 id_token 的 cookie,但 angualr-oauth2-oidc 无法识别该 cookie。angualr-oauth2-oidc 中的代码流被实现为对 https://{your-authentication-server}/token.oauth2 的 xhr 请求,因此这两个不匹配。

非常感谢任何想法、更正或解决方法。

4

1 回答 1

0

您的问题不够清楚,我会尽力回答 - 如果您寻找任何不同的东西,请纠正我。

正如项目主页上提到的那样

从版本 8 开始,该库支持代码流和 PKCE,以与 OAuth 2.0 安全最佳当前实践文档的当前草案保持一致。这也是即将推出的 OAuth 2.1 的基础。

PKCEclient_secret是最初为移动应用程序设计的一种替代品,但最终与 SPA 共享。它依赖于redirect_uri确保您的浏览器正在运行预注册的应用程序,然后用于code verifier将以下令牌请求绑定到原始质询。

对于那些来自 dotnet 世界的人来说,最有机的开源 STS 是Identity Server。对于那些来自 Java 世界的人来说,更直观的可能是Keycloak官方文档说明了与第一个的通信,但您可以在下面的同一页面找到几个教程的链接。

于 2020-06-25T16:28:22.390 回答