OKTA:angular 7 应用程序的不带 PKCE 的授权代码流

OKTA: Authorization code flow without PKCE for angular 7 application

提问人:Gopinath Vedagiri 提问时间:11/17/2023 更新时间:11/22/2023 访问量:41

问:

如何将现有的 angular 7 应用程序从隐式流迁移到授权代码流。 注意:没有 pkce。

实际: 在现有使用 IDP/Single sing on 机制自动登录到应用程序。

期望: 我想从隐式流中更改,仅使用没有 pkce 的授权代码流,并且必须自动登录 (IDP/SSO)

后端使用 spring boot 微服务,已经完成了 okta 提供和消费者 API。

我没有看到任何相同的实现或示例应用程序,至少仅对于授权代码流而言是这样。

提前致谢

如果需要任何其他信息,请告诉我,或者我上面提供的信息不清楚。

角度 oauth-2.0 oauth openid-connect okta

评论


答:

0赞 ch4mp 11/19/2023 #1

使用没有 PKCE 的“公共”客户端是非常不安全的,Angular 应用程序只能是公共 OAuth2 客户端。

实际上,根据最新的建议,你的 Angular 应用程序根本不应该是 OAuth2 客户端(它不应该从授权服务器获取令牌)。最好的选择可能是通过服务器上运行的 BFF 上的会话授权其请求。

好消息是:

  • 默认情况下,Spring 机密 OAuth2 客户端不使用 PKCE
  • 作为 BFF,您可以使用配置为 OAuth2 客户端的实例(带有 )以及 Angular 应用程序和资源服务器之间的过滤器(使用令牌保护的 Spring 无状态 REST API)。我在这里那里为此编写了教程。spring-cloud-gatewayoauth2LoginTokenRelay