如果我只有 id_token,如何保护 Java Spring boot API 免受 Azure AD B2C 的影响?

问题描述 投票:0回答:1

我正在尝试根据以下场景保护 API 免受 Azure AD B2C 的影响

Scenario

如您所见,流程如下:

1.- 用户将其凭据放入 Web 应用程序的登录页面 2.- Web 应用程序使用 OpenID Connect 根据 Azure AD B2C 验证凭据 3.- 成功验证用户凭据后,Azure 将创建并返回 id_token 到目前为止,所有这些功能都已经开发完成,我无法进行任何更改 4.- Web 应用程序将 id_token 作为 Bearer 令牌发送到 API 5.- 我需要的是保护(授权)我也针对 Azure 开发的新 API(Java 17、Spring boot 3),但使用 id_token 而不是 access_token,因为 Web 应用程序没有一个

我已经阅读了很多文档,但到目前为止我没有找到任何与我所拥有的场景相关的内容

你能帮我提供一些想法吗?任何建议将不胜感激

我尝试了 user_impersonation 和 on_behalf_of 方法,但没有成功,我不知道实现目标需要遵循什么流程

spring-boot azure oauth-2.0 azure-active-directory openid-connect
1个回答
0
投票

解释为什么不应使用 ID 令牌作为访问令牌的众多参考文献之一:https://auth0.com/blog/id-token-access-token-what-is-the-difference/

来自 Spring Security 团队的参考资料解释了为什么不应将 SPA 设为“公共”客户端:https://github.com/spring-projects/spring-authorization-server/issues/297#issue-896744390

如果您阅读了前面的“最终建议”,您可能会考虑将 OAuth2 BFF 插入您的系统。我在 Baeldung 上为此编写了一个教程:https://www.baeldung.com/spring-cloud-gateway-bff-oauth2

© www.soinside.com 2019 - 2024. All rights reserved.