【发布时间】:2021-03-02 15:29:13
【问题描述】:
在前端使用 OAuth 2.0 使用授权代码流和 PKCE 并在后端访问 Graph API 的 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 的好方法吗?
【问题讨论】:
-
您是否考虑过 OBO 流程:docs.microsoft.com/en-us/azure/active-directory/develop/…?
标签: azure oauth-2.0 azure-active-directory msal pkce