gpt4 book ai didi

asp.net-web-api - Web api 与 Azure AD 的集成测试

转载 作者:行者123 更新时间:2023-12-02 03:06:38 25 4
gpt4 key购买 nike

我正在开发受 Azure Active Directory 保护的 webapi web 服务。基于登录的用户,Web 服务与 Office 365 (SharePoint/Yammer) 密切相关。

为了测试 web api 端点,我正在编写一个控制台应用程序,让我使用我的 AAD 凭据登录,然后调用端点。它有效,但正在寻找替代这种测试 web api 的方式的东西。如果它更具可重复性并且我不必每次都填写我的凭据,那就太好了。我正在寻找一个单元测试项目,但无法让 Azure AD 登录工作。

任何提示如何使这更容易?

最佳答案

最简单的方法是将测试运行器定义为 Azure AD 中的应用程序,并让它使用自己的客户端 ID 和 secret 调用 API。

要做到这一点,您需要做一些事情:

  • 添加 appRoles到 Azure AD 中其 list 中的 API。这些是应用程序权限。
  • 定义您的测试运行程序,并使其需要您的 API 所需的应用程序权限。
  • 在您的测试运行程序中,您现在应该能够获得带有客户端 ID 和测试运行程序密码的访问 token ,无需用户身份验证。

  • API 端的应用权限也需要一些设置,授权还必须查看角色声明。

    您可以在此处找到定义应用权限并处理它们的示例: http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/ .

    更多关于定义应用权限的信息: https://stackoverflow.com/a/27852592/1658906 .

    有关 AAD 中应用程序 list 的更多信息: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-application-manifest .

    编辑:如果您必须代表 API 中的用户进行调用,那么这当然行不通。

    在这种情况下,我建议创建一个具有必要访问权限的用户帐户,以便运行测试。最好不要对其凭据进行硬编码,而是将它们存储在其他地方。

    关于asp.net-web-api - Web api 与 Azure AD 的集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328941/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com