1
  1. 身份验证提供程序:Azure Active Directory
  2. 客户端库:@azure/msal-react

正如这里所解释的,我的 msal 令牌在一小时后过期 MSAL 令牌在 1 小时后过期,我的要求是我想配置一个 15 分钟(或 10 分钟)的会话时间,之后我想触发一个弹出窗口,说请再次登录?有没有办法使用 msal-react.

目前,在一小时后调用acquireTokenSilent 以获取新令牌,使用哪个客户端不知道发生了这种情况并且客户端认为它具有无限的会话生命周期。

这是实现

export const refreshIdToken = async (msalInstance: IPublicClientApplication) => {
  const account = msalInstance.getActiveAccount();
  try {
    if (account != null) {
      const token = await msalInstance.acquireTokenSilent({
        scopes: loginRequest.scopes,
        account
      });

      return token.idToken;
    }
  } catch (error) {
    if (error instanceof InteractionRequiredAuthError) {
      return msalInstance.acquireTokenRedirect(loginRequest);
    } else {
      console.error(error);
    }
  }
};


const token = await refreshIdToken(msalInstance);// This will never expires , as it always refresh after one hour internally
axios.defaults.headers.common["Authorization"] = `Bearer ${token}`;
//api call

我需要从 Azure AD 端或客户端代码端配置哪些步骤?

提前致谢。

4

1 回答 1

0

您可以指定 Microsoft 身份平台颁发的访问令牌、ID 或 SAML 令牌的生命周期。您可以为组织中的特定服务原则设置令牌的生命周期。但是,微软目前不支持 Manage identity service principal 的配置令牌生命周期

注意:配置令牌生命周期策略仅适用于访问 SharePoint Online 和 OneDrive for business 资源的移动和桌面客户端,但 id 不适用于 Web 浏览器会话。

对于 2021 年的新更新,您无法配置刷新令牌和会话令牌生存期。现有令牌过期后的新令牌问题现在设置为默认配置。

于 2021-10-13T07:16:09.153 回答