【问题标题】:Integration testing with Azure ADB2C使用 Azure ADB2C 进行集成测试
【发布时间】:2021-11-19 16:25:06
【问题描述】:

我们有一个受 Azure ADB2C 保护的 Web 应用程序。用户必须登录才能访问该应用程序。当用户登录应用程序时,我们使用 API 连接器功能通过用户登录时使用的电子邮件获取更多用户详细信息。这些额外的详细信息作为自定义属性添加到令牌中,并由 Web 应用在 OnTokenValidated 事件中使用。

当我们的代码部署到测试/暂存或生产端点时,我们的集成测试将针对该端点运行。我无法欺骗身份验证,因为测试正在与实时端点对话。我需要像真实用户一样对测试进行身份验证。

我环顾四周并尝试了类似帖子中建议的 ROPC 流程。此解决方案的问题在于,它不会调用 API 连接器来获取“正常”登录流程会获取的额外用户详细信息。

ROPC 解决方案: Integration Test with Azure AD login

如何让我的集成测试以与真实用户相同的方式向 Azure ADB2C 进行身份验证,以便调用 API 连接器?

非常感谢任何帮助/建议。

谢谢。

【问题讨论】:

    标签: asp.net-core web-applications integration-testing azure-ad-b2c


    【解决方案1】:

    感谢 Nasheen Kalam 的博客。

    基于注册和登录页面的集成测试的 GIT 参考

    https://git.uwaterloo.ca/jmshahen/ece651-project/-/merge_requests/22

    流程如下:

    使用预定义用户运行身份验证测试

    测试步骤: 1.进入申请网址:127.0.0.1:3000 2.重定向到登录页面 3. 使用注册邮箱和密码 4. 登录 5. 验证结果

    预期结果:

    通过:邮箱时,密码匹配

    Fail: 组合错误时抛出的错误信息

    为新用户运行注册过程

    测试步骤:

    • 如果数据库中已存在用户,则手动删除用户

    1.转到申请网址:127.0.0.1:3000/signup 2. 使用全名、电子邮件地址和密码 4. 注册 5. 验证结果

    测试数据

    用户名:Test User01 用户邮箱:testuser@gmail.com

    用户密码: 用户测试01

    验证文字: 测试用户01

    预期结果:

    通过:当新用户创建时

    失败:如果用户已存在则抛出错误消息

    【讨论】:

    • 感谢您的回答,很遗憾我在登录页面上找不到元素并用测试数据填充它们。我已经用angleSharp库尝试过这个,由于某种原因它没有将表单与文档一起加载。我怀疑这是由于执行 javascript 的限制。
    猜你喜欢
    • 2020-09-28
    • 2021-12-17
    • 2013-04-07
    • 2019-12-17
    • 2015-12-28
    • 2020-05-26
    • 2018-01-02
    • 2021-02-03
    • 2015-06-14
    相关资源
    最近更新 更多