首页 > 解决方案 > 通过 TestCafe 测试使用 AzureAD 进行身份验证

问题描述

运行 testCafe 时,我无法通过 AzureAD 进行身份验证/登录。

const testrole = Role(
  'https://login.microsoftonline.com/',
  async t => {
    await t
      .typeText(Selector('input').withAttribute('type', 'email'), *******)
      .click(Selector('#idSIButton9'))
      .typeText(Selector('input').withAttribute('type', 'password'), ********)
      .click(Selector('#idSIButton9'));
  },
  { preserveUrl: true }
);

上述步骤工作正常,但输入密码后,我收到一条消息:

“无法登录 Outlook 帐户,错误:AADSTS900561:端点仅接受 POST 请求。收到 GET 请求。”

从我最初的搜索来看,这似乎与浏览器上的第 3 方 cookie 有关。但是,我目前无法找到解决方案。

知道我如何解决这个问题吗?

标签: testingautomated-testsazure-active-directorye2e-testingtestcafe

解决方案


Azure AD 产品团队一直提醒我,尝试像这样自动登录是个坏主意。即使您成功,他们也可能会检测到您是机器人并开始阻止您的请求。

相反,要获取访问令牌,您需要使用客户端凭据流(用于仅限应用程序的令牌)或资源所有者密码凭据流(用于委派的用户令牌)。

客户端凭据流:https ://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

ROPC 流程:https ://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc

您必须小心保护用于测试的凭据。并尽可能使用测试租户。


推荐阅读