如何从不需要用户身份验证的 Azure AD B2C 获取 SPA 应用程序的 api 访问令牌?

How to acquire an api access token for a SPA app from Azure AD B2C that doesnt require user authentication?

我有一个现有的基于 Vue/Nuxt 的 SPA 应用程序,它使用 MSAL.js 对用户进行身份验证并为我的 back-end ASP.Net Core WebApi 获取访问令牌。这一切都很好。但是,我的 SPA 应用程序中有几个页面可以匿名访问。这些页面还需要调用 back-end API,我想知道如何在没有用户登录时使用 MSAL.js 获取访问令牌?大多数样本都与重定向用户先登录有关。

我知道我可以在基于 header 的身份验证中为那些可以匿名访问的 api 端点实现简单的 api 密钥,但我更愿意使用现有的基于 Azure AD B2c 的平台为 SPA 应用获取 jwt 访问令牌。

您无法为任何用户获取令牌。 您的 front-end 也无法验证自己,因为它是 public 客户端。

API 端点必须允许匿名访问(无令牌)。 API 密钥方法将毫无用处,因为用户可以通过 F12 工具在 headers 中看到密钥。