0

从 2018 年到 2020 年初,我们一直在使用 TestCafe 对我们的 SPA 进行自动化测试,在那里我们开始遇到 MSAL 1.0 和阻止第 3 方 cookie 的问题。我们最近在我们的应用程序中将身份验证包升级到 MSAL 2.0,以克服第 3 方 cookie 问题,但仍然遇到 TestCafe 无法完成登录流程的问题。我们使用 AAD B2C 作为我们的身份验证提供商。我们认为该问题与 TestCafe 尝试登录时的代理 URL 有关,因为自动重定向到 B2C 登录页面失败,因为代理 URL 在应用程序注册中无法识别。有没有人能够使用 TestCafe 使用 AAD B2C 作为身份验证提供程序和使用 MSAL 2.0 的 Angular 单页应用程序?

问题:TestCafe 导航到应用程序 URL,并且没有重定向到 B2C 登录页面。此问题仅存在于代理的 TestCafe 流量中。

预期行为:导航到基本 URL 后,未经身份验证的用户应重定向到 B2C 登录页面,并在登录时重定向到处于身份验证状态的应用程序。

环境详细信息:Angular 10.2.5、Angular/MSAL 2.0.2、TestCafe 1.15、

应用注册为 SPA 应用,将 URL 重定向到应用基本 url。

已尝试使用 TestCafe preserveURL:true 和 pageCachingDisabled:true 遵循 TestCafe 建议,即使我们不认为这是问题的根源。

任何帮助表示赞赏。

4

2 回答 2

1

旧版本的 TestCafe 在使用MSAL 2.01、2、3)的网站上存在一些问题。在最新的 TestCafe 版本 ( ) 中,所有这些问题都已修复。尝试使用最新的 TestCafe 版本运行测试,并在必要时使用--disable-page-caching ) 选项。您可以在链接的问题中找到更多信息。1.15.3

于 2021-08-30T08:48:21.763 回答
0

我们为 BC2 身份验证找到的解决方法是利用testcafe 主机名参数并将其设置localhost为测试配置 JSON。这使得 testcafe 的代理可以localhost在前缀应用程序 URL 中使用测试客户端的 IP 地址而不是测试客户端的 IP 地址。

我们已经注册了一个 B2C 租户应用程序localhost来支持本地开发,一旦我们启用此参数,测试脚本就能够使用 B2C 作为身份和身份验证提供者成功登录。

于 2021-09-16T20:31:04.740 回答