我们可以在 MSAL JS 中使用响应类型作为访问令牌进行身份验证吗

can we authenticate with response type as access token in MSAL JS

在我们的应用程序中,仅使用 AAD 对我们组织内的企业用户进行身份验证。

是否可以将响应类型设置为访问令牌而不是默认 id_token?这是我的配置。

  // const msalConfig = {
  //   auth: {
  //     clientId: configuration.msal.clientId,
  //     tenantId:configuration.msal.tenantId,
  //     redirectUri: window.location.href
  //   },
  //   cache: {
  //     cacheLocation: 'sessionStorage',
  //     storeAuthStateInCookie: true
  //   }
  // };

我收到错误,但是如果我在 Azure 应用程序注册身份验证下的身份验证中启用 id_token,它会再次工作。但是是否有可能仅在启用访问令牌的情况下完成身份验证。

 msal handleRedirectCallback ServerError: AADSTS700054: response_type 'id_token' is not enabled for 
 the application.

T

您是说要使用授权代码流吗?如果是这样,你必须使用 MSAL v2.

编辑:抱歉,我看错了问题。

您不能直接使用 MSAL 请求访问令牌,您必须先登录 (id_token),然后获取令牌 (access_token)。 the docs.

中对此进行了全部解释
  1. MSAL.JS 用于实现浏览器级别的流程,例如 implicit flow.
  2. 隐式流需要 Id 令牌来验证用户是 他们声称是谁,并获得有关的其他有用信息 然后为了安全起见。
  3. 在隐式流程中,我们需要先使用 id 令牌进行授权,然后才能请求访问令牌。
  4. 仅当应用程序具有单页架构 (SPA)、没有后端组件时才建议使用隐式流。

您遇到错误是因为未启用隐式流。

要启用隐式流,请检查您注册的应用程序中的访问令牌和 ID 令牌,如下所述