运行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有关。但是,我目前无法找到解决方案。
知道我如何解决这个问题吗?
答案 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
您必须格外小心,以保护用于测试的凭据。 并尽可能使用测试租户。