如何在端到端测试中跳过 MFA?

4

我在自动化Web应用程序的登录过程中遇到了一些困难。这是一个Angular应用程序,我正在使用Protractor编写测试。该应用程序使用Azure AD,因此我需要传递电子邮件、密码和移动应用程序中的验证码。我知道有一些非常有用的库可以生成验证码。问题是我没有访问Azure管理面板的权限,因此无法获取使用这些库所必需的秘钥。是否可能以某种方式跳过或模拟MFA?如果您能提供任何解决方法,我将不胜感激。

2个回答

1

在您的CI中,我实际上建议不要跳过E2E测试中的MFA。

通过在与您的环境相关的代码中设置绕过,您正在冒有这个“测试帐户”在生产环境中被发现的风险。相信我,这迟早会发生;)。

今天存在多个第三方工具,允许您解析基于SMS的MFA或TOTP代码(例如Azure应用程序)。例如,GetMyMFA平台为您提供API,允许您接收并注入您的MFA代码到您的CI中。

如果您有时间和资源,我建议寻找一个工具,该工具允许您从API获取MFA代码,并使您的自动化E2E测试将该代码注入您的CI中。

干杯


0
假设您想在CI上运行这些测试,您可以在您的Web应用程序中硬编码一个测试用户凭据,在特定环境中使用时返回true。比如说,您想让用户xyz@abc.com登录并执行其他任务,在您的Web应用程序中添加代码,以便当xyz@abc.com发送带有虚拟密钥的请求时,将用户登录。然后,您需要模拟应用程序使用的所有其余API。
您还可以在测试CI环境中测试时删除身份验证。这是一个好的解决方案,但也很棘手。您必须完全删除所有API的身份验证,并且这需要设计模式的更改等。
但是,请获得访问权限并以正确的方式执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接