You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cypress脚本中实现MS Teams身份验证?

解决Cypress登录MS Teams的身份验证问题

方法1:通过API获取Token并注入身份验证Cookie

MS Teams依赖微软Azure AD的身份验证Cookie,你可以通过调用OAuth2令牌接口获取有效Token,再将对应的Cookie注入Cypress浏览器实例,跳过登录页。

具体操作:

  1. 准备Azure AD应用信息:在Azure门户注册应用,获取tenant_id、client_id,若为机密客户端还需client_secret,并配置好Teams相关权限(如User.Read、TeamsAppInstallation.ReadWriteSelfForUser),确保权限获得管理员同意。
  2. 在Cypress钩子中请求Token并注入Cookie:
beforeEach(() => {
  cy.request({
    method: 'POST',
    url: 'https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token',
    form: true,
    body: {
      grant_type: 'password',
      client_id: '{你的client_id}',
      client_secret: '{你的client_secret}', // 机密客户端必填
      username: '{Teams账号}',
      password: '{Teams密码}',
      scope: 'https://graph.microsoft.com/.default openid profile offline_access'
    }
  }).then((res) => {
    const idToken = res.body.id_token;
    // 注入Teams核心身份验证Cookie,可通过浏览器登录后查看完整Cookie列表补充
    cy.setCookie('ESTSAUTHPERSISTENT', idToken, { domain: '.microsoft.com', path: '/' });
    cy.setCookie('ESTSAUTH', idToken, { domain: '.microsoft.com', path: '/' });
  });
});

// 之后访问Teams页面
cy.visit('https://teams.microsoft.com');

方法2:复用已登录会话的Cookie

如果不想处理API调用,可手动登录Teams后导出Cookie,在Cypress中直接注入:

  1. 手动登录并复制Cookie:打开浏览器登录Teams,通过开发者工具(F12)→ Application → Cookies,筛选.microsoft.com域名,复制ESTSAUTHPERSISTENT、ESTSAUTH等核心身份验证Cookie的值。
  2. 在Cypress中注入Cookie:
beforeEach(() => {
  cy.setCookie('ESTSAUTHPERSISTENT', '{复制的Cookie值}', { domain: '.microsoft.com', path: '/' });
  cy.setCookie('ESTSAUTH', '{复制的Cookie值}', { domain: '.microsoft.com', path: '/' });
  // 补充其他必要Cookie
});

cy.visit('https://teams.microsoft.com');

注意:该方式的Cookie会过期,需定期更新。

关键注意事项

  • 密码授权方式(grant_type=password)仅适用于未开启MFA(多因素认证)的账号,若账号有MFA,需改用设备码授权等支持MFA的认证方式。
  • 不同Teams环境可能需要不同的Cookie,建议登录后通过浏览器工具确认所有必要的身份验证Cookie,确保全部注入。

内容的提问来源于stack exchange,提问作者Tomasito

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 19:02:46