首页 > 解决方案 > 为 SPA 应用程序集成 openid 连接的最佳方式

问题描述

我需要为 SPA 应用程序集成 OpenId 连接,而 URL 中没有令牌 ID,我们可以这样做吗?

标签: javarestspring-bootopenid-connect

解决方案


我假设您对在 URL 中使用 ID 令牌有一些安全问题...

在这种情况下,我可以看到两种降低风险的方法:

  • 确保 OIDC 提供程序使用 URL 片段而不是通过查询字符串重定向到您的应用程序。这可确保参数不会发送到它们可能最终出现在日志中的服务器,并且应该已经是提供者对隐式流的默认响应模式。如果需要,您可以使用response_mode=fragment它来强制执行它。

  • 您可以注册一个“公共”客户端,但仍使用授权代码流从令牌端点获取 ID 令牌。在这种情况下,您不会client_secret向令牌端点提供 a(因为客户端是公共的)。您也可以考虑在此流程中使用PKCE


推荐阅读