【问题标题】:How to acquire an api access token for a SPA app from Azure AD B2C that doesnt require user authentication?如何从不需要用户身份验证的 Azure AD B2C 获取 SPA 应用程序的 api 访问令牌?
【发布时间】:2021-09-10 15:09:10
【问题描述】:

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

我知道我可以在基于标头的身份验证中为那些可以匿名访问的 api 端点实现简单的 api 密钥,但我希望我可以利用现有的基于 Azure AD B2c 的平台来获取 jwt 访问令牌,而不是SPA 应用。

【问题讨论】:

    标签: asp.net-core azure-ad-b2c msal.js


    【解决方案1】:

    您无法为任何用户获取令牌。 您的前端也无法验证自己,因为它是公共客户端。

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

    【讨论】:

    • 那么有没有其他选项可以保护这些 api 端点,而不是让它们完全开放,即匿名访问。如果可能的话,我希望有某种级别的基于令牌的身份验证。
    • 就像我说的,您必须对用户进行身份验证。由于您的前端应用程序无法保密,它从根本上无法验证自己,只有用户可以。可以选择基于 IP 地址的访问限制吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2020-01-12
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2021-01-03
    相关资源
    最近更新 更多