即使对于即将发布的OAuth 2.1中的Angular等公共客户端应用程序,也建议使用授权代码授予流程。
但是Angular应用通常是SPA,这意味着没有内置的服务器端可以存储client_secret。
图书馆“ angular-oauth2-oidc”声称支持代码授予流程,但是我找不到任何可用的开源解决方案。
尝试了Vouch代理,但它设置了cookie,其中包含access_token和id_token,但是angualr-oauth2-oidc无法识别该cookie。 angualr-oauth2-oidc中的代码流被实现为对https:// {your-authentication-server} /token.oauth2的xhr请求,因此这两个代码不匹配。
非常感谢任何想法,更正或解决方法。
答案 0 :(得分:0)
您的问题还不够清楚,我会尽力回答-如果您有其他疑问,请纠正我。
如项目main page所述
从版本8开始,该库支持代码流和PKCE,以与OAuth 2.0安全性最佳最新实践文档的当前草案保持一致。这也是即将推出的OAuth 2.1的基础。
PKCE
是client_secret
的替代品,最初是为移动应用程序设计的,但最终与SPA共享。它依靠redirect_uri
来确保您的浏览器正在运行预注册的应用程序,然后使用code verifier
将以下令牌请求绑定到原始挑战。
对于那些来自互联网世界的人来说,最有机的开源STS是Identity Server。对于那些来自Java世界的人来说,更直观的可能是Keycloak。 official documentation说明了与第一个教程的通信,但是您可以在下面的同一页上找到几个教程的链接。