使用带有 PKCE 的授权代码流并在后端访问 Graph API 的 OAuth 2.0 前端 SSO(单点登录)的最佳实践是什么?
早些时候,我使用 react-adal 和隐式流程在前端检索令牌并使用它访问后端。后端使用 azure-active-directory-spring-boot-starter 库。请求后后端访问 Graph API 以获取所需的信息。它是 Azure AD 中的一个 Web 应用程序。
目前,我使用 msal-react 在前端访问 id 令牌和访问令牌。所以这意味着我现在正在使用带有授权代码流的 SPA(Azure AD 中的单页应用程序)。在前端,我同时检索:访问令牌和 id 令牌。要访问后端,我需要 id 令牌。但我也需要访问令牌,以便后端可以访问 Graph API。我认为将它们都发送到 Header 中或根本发送都不是一个好主意。前端和后端都使用相同的 Azure 应用程序。后端有一个秘密。重要的是我不需要前端直接访问 Graph API。但是,这是发送用于后端身份验证的 id 令牌和访问令牌以在后端访问 Graph API 的好方法吗?