testing - 通过 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 有关。但是,我目前无法找到解决方案。
知道我如何解决这个问题吗?
解决方案
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
您必须小心保护用于测试的凭据。并尽可能使用测试租户。
推荐阅读
- javascript - 在角度中使用 *ngIf 和 else 时出现错误
- java - 无法将 Java Spring Boot 应用程序连接到 Amazon Keyspaces
- python - 从python执行awk(将输出重定向到文件)
- blazor - 在 Blazor 中,如何将每个组件实例的元素 ID 设置为不同的值,但在组件实例中设置相同的值?
- c++ - PFN_vkDebugUtilsMessengerCallbackEXT 在 macOS 上需要的参数数量与在 Windows 上不同
- reactjs - 在 jamming@0.1.0 启动脚本中反应 errno 1 失败
- c# - 带有 Microsoft Graph Api 的 AuthProvider“未找到 Ctor”
- vue.js - 编译模板时出错:标签
没有匹配的结束标签 - c# - Azure 存储队列 queueServiceClient.GetQueues
- mongodb - 聚合查询从嵌套子文档中获取最新元素的计数