获取Azure AD JWT令牌以在集成测试授权时使用

时间:2018-05-29 08:30:37

标签: .net-core integration-testing azure-active-directory

我有一个Web API,其中用例需要一个用户提交订单而另一个用户需要批准。我想在运行自动化集成测试时介绍此功能。

到目前为止,我所阅读的所有内容都要求您注册应用程序之类的应用程序等不应该是API,并且所有客户端都已注册,我不想更改任何此类内容。

我希望只有通过对Azure AD Web API的请求才能为用户获取JWT令牌,以便在测试时自动执行该过程。

1 个答案:

答案 0 :(得分:1)

我最近刚为一个应用做了这个,但它确实需要你注册一个应用程序。 我们有一个单独的Azure AD用于开发/测试,因此在那里制作用户和应用程序非常容易。

我做了什么:

  • 要使用的集成测试的已注册应用,授予其在开发/测试环境中调用API的权限
  • 创建了一些我分配给API上不同角色的用户
  • 使用资源所有者密码凭据授权流程在集成测试中获取令牌
    • 通常我不会将此流程用于任何事情,但在这种情况下我们确实需要进行非交互式登录
  • 使用不同用户调用API并声明响应符合预期

如果您不想创建其他应用,则必须使用现有应用的密钥。 无论哪种方式,都需要有一个客户端应用程序。