通过TestCafe测试与AzureAD进行身份验证

时间:2019-10-08 14:39:25

标签: testing automated-tests azure-active-directory e2e-testing testcafe

运行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请求。”

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

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

1 个答案:

答案 0 :(得分:4)

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

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